XPath / Adressierung und Attribut
snowwhite
- xsl
0 MichaelR0 Thomas J.S.
Hallo,
ich habe folgendes XML-Dokument und habe Probleme das Attribut auszugeben:
XML-Struktur:
<rootelement>
<title>Ueberschrift</title>
<indexterm text="Ueberschrift" />
</rootelement>
XSL:
....
<xsl:output method="xml" version="1.0" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:value-of select="/descendant-or-self::indexterm[@text]"/>
<!--<xsl:value-of select="//indexterm[@text]"/>-->
</xsl:template>
</xsl:stylesheet>
Das Attribut text wird einfach nicht ausgegeben. Und ich weiß nicht warum.
Wenn ich in dem Element title das Attribut einfüge und die Abfrage mit title mache, dann wird mir das Attribut ausgegeben.
Vielleicht kann mir jemand von euch sagen, was ich falsch mache.
Vielen Dank auf jeden Fall im voraus.
Viele Grüße
snowwhite
Hi,
XML-Struktur:
<rootelement>
<title>Ueberschrift</title>
<indexterm text="Ueberschrift" />
</rootelement>
Versuchs doch mal so:
<xsl:output method="xml" version="1.0" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:value-of select="title" />
<xsl:value-of select="indexterm/@text" />
</xsl:template>
</xsl:stylesheet>
Das sollte alles ausgeben.
Viele Grüße,
Michael
Hallo Michael,
vielen Dank, das funktioniert!:o)
Viele Grüße
snowwhite
Hallo,
<xsl:value-of select="/descendant-or-self::indexterm[@text]"/>
Das Attribut text wird einfach nicht ausgegeben.
Weil du gar nicht darauf zugreifst. Du greifst auf ein Element "indexterm" zu, dass ein Attribut "text" besitzt. Da das Element keinen Inhalt hat, ann auch nichts ausgegeben werden.
Eine Lösung hast du ja in der Zwischenzeit.
Grüße
Thomas
Hallo Thomas,
vielen Dank für deine Hilfe.
Es hat zwar jetzt am Samstag mit der Ausgabe des Attributs geklappt, allerdings funktioniert das Stylesheet jetzt nicht im AltovaXMLSpy.
Das Attribut wird nicht ausgegeben, obwohl ich es so mache wie am Samstag:
<xsl:value-of select="indexterm/@text" />
Kann es an der Engine liegen, das es nicht funktioniert?
Am Samstag habe ich Saxon als Engine benutzt und heute benutze ich beim AltovaXMLSpy die Standard-Engine.
Vielen Grüße
snowwhite
Hallo,
Es hat zwar jetzt am Samstag mit der Ausgabe des Attributs geklappt, allerdings funktioniert das Stylesheet jetzt nicht im AltovaXMLSpy.
Das Attribut wird nicht ausgegeben, obwohl ich es so mache wie am Samstag:
<xsl:value-of select="indexterm/@text" />Kann es an der Engine liegen, das es nicht funktioniert?
Am Samstag habe ich Saxon als Engine benutzt und heute benutze ich beim AltovaXMLSpy die Standard-Engine.
Bei Mnachen ist es notwenig, dass du das erste Templates so schreibst:
<xsl:template match="/nameDesRootElementsDeinesXMLs">
Mehr könnte ich nur bei mehr Kode sagen.
Grüße
Thomas
Hallo Thomas,
wenn ich den Namen des Root Elements angebe - so wie du es geschrieben hast- dann geht es. Vielen Dank!:o)
Also, können manche Ausgabe-Probleme doch von der Engine abhängig sein, oder?
Vielen Dank auf jeden Fall für Deine Unterstützung.
Viele Grüße
snowwhite