Hallo zusammen.
Folgendes Problem (an dem ich seit Stunden sitze!) lässt mich daran zweifeln, dass ich XSLT/XPath verstanden habe. Leider hat meine Recherche (Google + Literatur + Kollegenkreis) meinem Verständnis in keinster Weise geholfen. Hier also das Problem:
XML:
XSLT:
Das Problem ist das letzte Template, welches number/hex matchen soll. Aber das tut es nicht. Die Ausgabe sieht wie folgt aus:
Auch auf die Gefahr hin, dass ich jetzt mein blaues Wunder erlebe: 1. Warum ist das so? Und 2. Was muss ich tun, dass number und number/hex (wie oben gedacht) unabhängig gematcht werden?
Vielen Dank schon mal.
Folgendes Problem (an dem ich seit Stunden sitze!) lässt mich daran zweifeln, dass ich XSLT/XPath verstanden habe. Leider hat meine Recherche (Google + Literatur + Kollegenkreis) meinem Verständnis in keinster Weise geholfen. Hier also das Problem:
XML:
Code:
<?xml version="1.0" encoding="UTF-8"?> <expression> <operator> + </operator> <number> 1 </number> <number> <hex> 5 </hex> </number> </expression>
XSLT:
Code:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" /> <xsl:template match="/expression"> expression: <xsl:apply-templates select="*"/> </xsl:template> <xsl:template match="operator"> operator: <xsl:value-of select="normalize-space(.)"/> </xsl:template> <xsl:template match="number"> number: <xsl:value-of select="normalize-space(.)"/> </xsl:template> <xsl:template match="number/hex"> number (hex): <xsl:value-of select="normalize-space(.)"/> </xsl:template> <xsl:template match="*"/> </xsl:stylesheet>
Code:
expression: operator: + number: 1 number: 5
Vielen Dank schon mal.
Comment