Hallo!
Ich möchte ein Teilbaum sortieren und wieder "virtuell" in das XML-Dokument "neu schreiben"/"kopieren". Muß nicht an der selben Stelle ein.
Hintergrund ist eine Blätternfunktion.
Ich möchte mit vorname[position()>=1 and position<=2] nicht Ingo und Andre haben, sondern Andre und Dieter.
<root>
<foo>
<bar>FooBar</bar>
</foo>
<namen>
<eintrag>
<vornamen>Ingo</vorname>
<nachname>Schmidt</nachname>
</eintrag>
<eintrag>
<vornamen>Andre</vorname>
<nachname>Laugks</nachname>
</eintrag>
<eintrag>
<vornamen>Dieter</vorname>
<nachname>Meyer</nachname>
</eintrag>
</namen>
</root>
Nach der Sortierung.
<root>
<foo>
<bar>FooBar</bar>
</foo>
<namen>
<eintrag>
<vornamen>Andre</vorname>
<nachname>Laugks</nachname>
</eintrag>
<eintrag>
<vornamen>Dieter</vorname>
<nachname>Meyer</nachname>
</eintrag>
<eintrag>
<vornamen>Ingo</vorname>
<nachname>Schmidt</nachname>
</eintrag>
</namen>
</root>
Ich habe schon eine andere Lösung, würde es aber gern mit die hier gefragten Lösung machen, weil ich mit XPath noch herumwandern möchte um Daten zu selektieren.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="ISO-8859-1"/>
<xsl:template match="/root">
<html>
<body>
<table border="1">
<tr>
<td>Name</td>
</tr>
<xsl:apply-templates select="eintrag">
<xsl:sort/>
</xsl:apply-templates>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="eintrag">
<xsl:if test="position() >= 10 and position() <= 19">
<tr>
<td><xsl:value-of select="vorname"/></td>
</tr>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
André Laugks
--
Die Frau geht, die Hilti bleibt!
Die Frau geht, die Hilti bleibt!