Ich habe eine XML-Datei, aus der ich bestimmte untergeordnete Knoten mit Handelsartikel-ID wie childA zum übergeordneten Knoten verschieben/kopieren muss, indem ich einen leeren übergeordneten Knoten erstelle.Verschieben von untergeordneten Knoten zum übergeordneten Knoten unter Bedingung
Wie EingangXML:
<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>
Endgültige Ausgabe:
<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>
konnte ich Kind oben kopieren, aber alle Childs kopiert zu werden, und ich bin nicht in der Lage, bestimmte Kind zu wählen, auch konnte ich nicht neue leere Eltern-Tag erstellen, um Kind in ihm zu setzen.
Mein Code ist unten:
<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>
Bitte vorschlagen.