안녕하세요 저는 비슷한 출력을 줄 때 원하는 출력을 얻을 필요가있는 xslt를 작성하려고합니다. 만약 당신이 그 출력은 그 XML에있는 요소의 발생을 기반으로 ID를 가지고 관찰. 지금까지 내 xslt에서 나는 위치에 따라 그것을하고있다. 하지만 입력 XML로부터 매번 카운트를 중단하고 다시 시작합니다. 이것이 성취 될 수 있는가?입력 요소의 출현을 기준으로 출력의 요소 값을 증가 시키십시오.
갱신 :
입력에 좀 더 세부 사항을 추가. 보시다시피 나는 수준 아래에 추가하고는 각각의 데이터
입력 XML
<lines>
<line>
<po-num>text1</ponum>
<accountings>
<accounting>
<account>
<seg1>value1</seg1>
</account>
</accounting>
<accounting>
<account>
<seg1>value2</seg1>
</account>
</accounting>
</accountings>
</line>
<line>
<po-num>text2</ponum>
<accountings>
<accounting>
<account>
<seg1>value3</seg1>
</account>
</accounting>
</accountings>
</line>
<line>
<po-num>text3</ponum>
<account>
<seg1>value4</seg1>
</account>
</line>
</lines>
원하는 출력 XML
<Item>
<id>1</id>
<po-num>text1</ponum>
<seg>value1</seg>
</Item>
<Item>
<id>2</id>
<po-num>text1</ponum>
<seg>value2</seg>
</Item>
<Item>
<id>3</id>
<po-num>text2</ponum>
<seg>value3</seg>
</Item>
<Item>
<id>4</id>
<po-num>text3</ponum>
<seg>value4</seg>
</Item>
XSLT I 모두에 채워 져야합니다 Rupesh가 제공 한 xslt를 사용하고 있습니다.
<?xml version="2.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"></xsl:output>
<xsl:template match = "/">
<xsl:for-each select="//account">
<item>
<id><xsl:value-of select="position()"/></id>
<po-num><xsl:value-of select="../../../*:po-num"/></po-num>
<seg><xsl:value-of select="./*:seg1"></xsl:value-of></seg>
</item>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
의 변화를 볼 수 있습니까? 죄송하지만 StackOverflow는 사람들이 기존 프로그래밍 코드를 수정하도록 돕는 것입니다. 자습서, 연구, 도구, 권장 사항, 라이브러리 및 무료 코드에 대한 요청은 주제와 관련이 없습니다. *** ***을 읽어보십시오. https://stackoverflow.com/help/on-topic, https://stackoverflow.com/help/how-to-ask, https://stackoverflow.com/help/dont- 여기에 Q를 게시하기 전에 https://stackoverflow.com/help/mcve를 방문하여 [둘러보기] (https://stackoverflow.com/tour)를 방문하십시오. 행운을 빕니다. – shellter
안녕하세요, 실제 코드를 여러 가지 이유로 공유 할 수 없습니다. 위의 샘플 입력을 지원하는 샘플 XSLT 코드를 만들어 보겠습니다. 코드의 방대한 부분. 위의 상황은 그 안에 작은 모듈입니다. –