Hallo zusammen!
Ich möchte in einer XMl-Datei bestimmte Elemente in Attribute umwandeln. In einem Buch habe ich ein Stylesheet gefunden, dass mir dann aber ALLE Elemente in Attribute umwandelt. Es soll aber nur bei EINEM gemacht werden, z. B. bei "age". Irgendwie wills bei mir nicht "klick" machen...
Folgendes XML-Dokument sei gegeben:
Alles anzeigen
Das Stylesheet "zurueck.xsl" sieht so aus:
Alles anzeigen
Dieses importiert noch die folgende XSLT-Datei (copy.xslt):
Als Ergebnis bekomme ich bis jetzt folgendes XML-Dokument:
Also alle Elemente werden in Attribute umgewandelt. Wie schaffe ich es aber, dass nur die Elemente von "age" in Attribute umgewandelt werden? Habe schon an der xsl-Datei (zurueck.xsl) rumgespielt, komme aber nicht weiter...
Vielleicht hat ja einer von Euch die zündende Idee....
Danke & Grüße
gonzo
p.s.: Das sind meine Dateien: Element als Attribut.zip
Ich möchte in einer XMl-Datei bestimmte Elemente in Attribute umwandeln. In einem Buch habe ich ein Stylesheet gefunden, dass mir dann aber ALLE Elemente in Attribute umwandelt. Es soll aber nur bei EINEM gemacht werden, z. B. bei "age". Irgendwie wills bei mir nicht "klick" machen...

Folgendes XML-Dokument sei gegeben:
Quellcode
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <?xml-stylesheet type="text/xsl" href="zurueck.xsl"?>
- <people>
- <person>
- <firstname>Sal</firstname>
- <lastname>Mangano</lastname>
- <age>38</age>
- <height>5.75</height>
- </person>
- <person>
- <firstname>Mike</firstname>
- <lastname>Palmieri</lastname>
- <age>27</age>
- <height>5.10</height>
- </person>
- <person>
- <firstname>Vito</firstname>
- <lastname>Palmieri</lastname>
- <age>34</age>
- <height>6.00</height>
- </person>
- <person>
- <firstname>Vinny</firstname>
- <lastname>Mari</lastname>
- <age>37</age>
- <height>5.8</height>
- </person>
- </people>
Das Stylesheet "zurueck.xsl" sieht so aus:
Quellcode
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:import href="copy.xslt"/>
- <xsl:output method="xml" version="1.0" encoding="ISO-8859-1"/>
- <xsl:template match="person">
- <xsl:copy>
- <xsl:for-each select="*">
- <xsl:attribute name="{local-name(.)}">
- <xsl:value-of select="."/>
- </xsl:attribute>
- </xsl:for-each>
- </xsl:copy>
- </xsl:template>
- </xsl:stylesheet>
Dieses importiert noch die folgende XSLT-Datei (copy.xslt):
Als Ergebnis bekomme ich bis jetzt folgendes XML-Dokument:
Quellcode
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <?xml-stylesheet type="text/xsl" href="zurueck.xsl"?>
- <people>
- <person firstname="Sal" lastname="Mangano" age="38" height="5.75"/>
- <person firstname="Mike" lastname="Palmieri" age="27" height="5.10"/>
- <person firstname="Vito" lastname="Palmieri" age="34" height="6.00"/>
- <person firstname="Vinny" lastname="Mari" age="37" height="5.8"/>
- </people>
Also alle Elemente werden in Attribute umgewandelt. Wie schaffe ich es aber, dass nur die Elemente von "age" in Attribute umgewandelt werden? Habe schon an der xsl-Datei (zurueck.xsl) rumgespielt, komme aber nicht weiter...

Vielleicht hat ja einer von Euch die zündende Idee....
Danke & Grüße
gonzo
p.s.: Das sind meine Dateien: Element als Attribut.zip