Sortieren von Elementen (nicht anhand des Inhaltes)
sknob001
- xsl
1 Holge r
Hallo zusammen, existiert eine Möglichkeit mittels einer XSLT-Transformation die Elemente und Attribute in einem XML-File zu sortieren. Also ich möchte nicht gleiche Elemente anhand des Inhaltes sortieren, sonder die Elemente anhand deren Namen.
Hintergrund ist, dass ich zwei XML-Bäume vergleichen muss und die Reihenfolge der Elemente/Attribute können in einer unterschiedlichen Reihenfolge vorliegen.
Einfaches Beispiel:
<?xml version="1.0" encoding="ISO-8859-1"?>
<html>
<body>
<h6>h6</h6>
<h5>h5</h5>
<h3>h3</h3>
<h2>h2</h2>
<h1>h1</h1>
<h4>h4</h4>
</body>
</html>
Nach der Sortierung:
<?xml version="1.0" encoding="ISO-8859-1"?>
<html>
<body>
<h1>h1</h1>
<h2>h2</h2>
<h3>h3</h3>
<h4>h4</h4>
<h5>h5</h5>
<h6>h6</h6>
</body>
</html>
Vielen Dank & viele Grüße,
Stefan
Hallo,
Warum nimmst du nicht xsl:sort in Kombination mit local name ?
<xsl:apply-templates select="*">
<xsl:sort order="ascending" data-type="text" select="local-name()" />
</xsl:apply-templates>
oder
<xsl:for-each select="//*[contains(local-name(),'h')]">
<xsl:sort order="ascending" data-type="text" select="local-name()" />
</xsl:for-each>
Gruss,
Holge r