다음 xml을 변환하는 중입니다.
<root>
<node1>
<node2 id="1">xyz</node2>
</node1>
<node1>
<node2 id="2">abc</node2>
</node1>
<parent>
<child>abc</child>
</parent>
</root>
다음 형식으로 변환하고 싶습니다.
<root>
<node1>
<node2 id="1">xyz</node2>
</node1>
<parent>
<child>abc</child>
<node1>
<node2 id="2">abc</node2>
</node1>
</parent>
</root>
하위 요소를 복사하기 위해 템플릿을 추가했습니다.
id 속성을 확인하고 2와 같으면 부모 노드를 복사해야합니다. 누군가이 도움을 주시면 감사하겠습니다.
미리 감사드립니다.
입력 XML의 형식이 질문에서와 크게 다르지 않으면이 XSLT가 작동합니다.
<xsl:transform 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="/*/*[*[@id = '2']]"/>
<xsl:template match="parent">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
<xsl:copy-of select="/*/*[*[@id = '2']]"/>
</xsl:copy>
</xsl:template>
</xsl:transform>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다