snowwhite: XPath / Adressierung und Attribut

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

  1. 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

    1. Hallo Michael,
      vielen Dank, das funktioniert!:o)
      Viele Grüße
      snowwhite

  2. 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

    1. 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

      1. 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

        1. 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

          1. Hello out there!

            Also, können manche Ausgabe-Probleme doch von der Engine abhängig sein, oder?

            Ja  und nochmals ja.
            See ya up the road,
            Gunnar

            --
            „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)