1
플랫 파일 스키마의 XSLT 변환과 관련하여 도움이 필요합니다. Record
노드의 직접 하위 노드를 Record
노드가 포함 된 노드로 결합 할 수 있습니까? 자식 512
이 필요하며 최소 및 최대 발생 횟수가 1이고 새로운 Record
노드의 시작을 표시합니다.XSLT 1.0을 사용하여 XML을 변환하는 데 도움이 필요합니다.
입력 :
<ns0:Root xmlns="">
<Header>
<node01>AA</node01>
<node02>123</node02>
</Header>
<Record>
<512>
<node01>BB</node01>
<node02>123</node02>
</512>
</Record>
<Record>
<513>
<node01>CC</node01>
<node02>123</node02>
</513>
</Record>
<Record>
<512>
<node01>DD</node01>
<node02>123</node02>
</512>
</Record>
<Record>
<515>
<node01>JJ</node01>
<node02>123</node02>
</515>
</Record>
<Record>
<512>
<node01>EE</node01>
<node02>123</node02>
</512>
</Record>
<Record>
<513>
<node01>FF</node01>
<node02>123</node02>
</513>
</Record>
<Record>
<514>
<node01>GG</node01>
<node02>123</node02>
</514>
<514>
<node01>HH</node01>
<node02>123</node02>
</514>
</Record>
<Footer>
<node01>II</node01>
<node02>123</node02>
</Footer>
</ns0:Root>
원하는 출력 :
<ns0:Root xmlns="">
<Header>
<item01>AA</item01>
<item02>123</item02>
</Header>
<Record>
<512>
<item01>BB</item01>
<item02>123</item02>
</512>
<513>
<item01>CC</item01>
<item02>123</item02>
</513>
</Record>
<Record>
<512>
<item01>DD</item01>
<item02>123</item02>
</512>
<515>
<item01>JJ</item01>
<item02>123</item02>
</515>
</Record>
<Record>
<512>
<item01>EE</item01>
<item02>123</item02>
</512>
<513>
<item01>FF</item01>
<item02>123</item02>
</513>
<514>
<item01>GG</item01>
<item02>123</item02>
</514>
<514>
<item01>HH</item01>
<item02>123</item02>
</514>
</Record>
<Footer>
<item01>II</item01>
<item02>123</item02>
</Footer>
</ns0:Root>
감사합니다 친절 필립
P.S에 관하여 : XSLT 2.0을 사용할 수 없습니다. 에 실행하면
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Record[r512]">
<xsl:copy>
<xsl:apply-templates select="." mode="iterate" />
</xsl:copy>
</xsl:template>
<xsl:template match="Record" />
<xsl:template match="Record" mode="iterate">
<xsl:apply-templates />
<xsl:apply-templates select="following-sibling::Record[1][not(r512)]"
mode="iterate"/>
</xsl:template>
</xsl:stylesheet>
: 법적 XML은 (요소 이름은 숫자로 시작할 수 없습니다) 아니에요,하지만 당신은 "R"로 시작하는 모든 잘못된 요소를 이름이 랬
는