2010-12-02 12 views
1

Gibt es eine Möglichkeit, alle Knotenattribute unter Verwendung von XSLT 1.0 in untergeordnete Knoten umzuwandeln? Es muss einwandfrei mit PHP xsltProcessor laufen. Die Attribute müssen entfernt werden (wenn möglich).Alle Attribute des Knotens in untergeordnete Knoten konvertieren

Beispiel Eingabe:

<root aaa="111" bbb="222" ccc="333"> 
    <bob ddd="444" /> 

    <data eee="555"> 
     <steve>bar1</steve> 
     <john>bar2</john> 
     <peter fff="666">bar3</peter> 
    </data> 

    <greg ggg="777" /> 
</root> 

Das gewünschte Ergebnis:

<root> 
    <aaa>111</aaa> 
    <bbb>222</bbb> 
    <ccc>333</ccc> 
    <bob> 
     <ddd>444</ddd> 
    </bob> 
    <data> 
     <eee>555</eee> 
     <steve>bar1</steve> 
     <john>bar2</john> 
     <peter> 
      <fff>666</fff> 
      bar3 
     </peter> 
    </data> 
    <greg> 
     <ggg>777</ggg> 
    </greg> 
</root> 

Thank you!

Antwort

4

auf Sauerstoff/XML Getestete Saxon6.5 verwendet:

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

    <xsl:template match="node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 

    <xsl:template match="@*"> 
    <xsl:element name="{name()}"><xsl:value-of select="."/></xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 

Dies basiert eine Identitäts Templat für Elementknoten zur Verwendung und eine Vorlage, die Attribute Elemente umwandelt.

Verwandte Themen