-1
我有一個xml文件,我需要通過創建一個空的父節點將具有貿易項目標識的特定子節點(如childA)移動/複製到父節點。在條件下將子節點移動到父節點
像輸入XML:
<root>
<Payload>
<TradeItemVersion>
<TradeItemID>A</TradeItemID>
<TradeItemTitle>B</TradeItemTitle>
<ProductID>C</ProductID>
<TradeItemVersion>
<Child>
<TradeItemID>ChildA</TradeItemID>
<TradeItemTitle>Child</TradeItemTitle>
<ProductID>Child</ProductID>
<Child>
<Child>
<TradeItemID>ChildB</TradeItemID>
<TradeItemTitle>Child</TradeItemTitle>
<ProductID>Child</ProductID>
<Child>
<Payload>
<root>
最終輸出:
<root>
<Payload>
<TradeItemVersion>
<TradeItemID>ChildA</TradeItemID>
<TradeItemTitle>Child</TradeItemTitle>
<ProductID>Child</ProductID>
<TradeItemVersion>
<TradeItemVersion>
<TradeItemID>A</TradeItemID>
<TradeItemTitle>B</TradeItemTitle>
<ProductID>C</ProductID>
<TradeItemVersion>
<Child>
<TradeItemID>ChildB</TradeItemID>
<TradeItemTitle>Child</TradeItemTitle>
<ProductID>Child</ProductID>
<Child>
<Payload>
<root>
我能以最快的複製孩子,但所有孩子的越來越複製和我無法選擇特定的孩子,我也無法創建新的空父母標籤來將孩子放在裏面。
我的代碼如下:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*" name="identity">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="TradeItemVersion">
<xsl:apply-templates mode="search"/>
<xsl:call-template name="identity"/>
</xsl:template>
<xsl:template match="Child"/>
<xsl:template match="Child" mode="search">
<xsl:call-template name="identity"/>
</xsl:template>
<xsl:template match="text()" mode="search"/>
</xsl:stylesheet>
請建議。