2017-08-25 1 views
0

Ich möchte ein XSLT-Programm, das eine XMl-Datei in einer Weise transformiert, die alle Attribute von allen Kindknoten (bis zur tiefen Ebene) des Stammknotens liest und extrahiert und in den Elternknoten kopiert. Entfernen Sie anschließend alle untergeordneten Knoten. Eingang xmlWie kopiert man in XSLT alle Attribute von allen Kindknoten in den Wurzelknoten von xml?

enter code here 
<root> 
    <a key="1"/> 
    <b key1="2"> 
    <c key3="3"/> 
    </b> 
</root> 

und Ausgabe xml würde so aussehen:

<root key="1" key1="2" key3="3" /> 
+0

Wie möchten Sie Kindknoten behandeln, die das gleiche Attribut haben? (Zum Beispiel, wenn a, b und c alle ein Attribut "id" hatten, zum Beispiel welchen Wert würden Sie in dem resultierenden Wurzelelement verwenden? – Rob

+0

Danke. Ja für den ersten Schritt. Es wird kein Problem für mich. Es ist in Ordnung zu kommen gleicher Attributname – user3656511

Antwort

1

Sie ganz einfach tun können:

XSLT 1,0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

<xsl:template match="/root"> 
    <xsl:copy> 
     <xsl:copy-of select="//@*"/> 
    </xsl:copy> 
</xsl:template> 

</xsl:stylesheet> 

jedoch ein Element kann nicht zwei Attribute mit dem gleichen na haben mich. Wenn Ihr XML mehr als eine Instanz desselben Attributs enthält, überschreiben sie einander, und nur der letzte wird in der Ausgabe vorhanden sein.

Verwandte Themen