Birgit: Attribute auslesen

Hallo zusammen,

ich habe mal wieder ein kleines Problem mit XSL. Dazu folgender Ausschnitt aus der XML-Datei:

...
<catgry>
   <catValu>1</catValu>
   <txt>Ja</txt>
   <catStat type="freq">1999</catStat>
   <catStat type="percent">97.75</catStat>
</catgry>
...

Wie kann ich jetzt die Werte von type="freq" und type="percent" ausgeben? Mit <xsl:value-of select="catStat/@type='freq'" /> und <xsl:value-of select="catStat/@type='percent'" /> bekomme ich nur die Ausgabe "true" oder "false". Kann mir da jemand weiterhelfen?

Vielen Dank schonmal
Birgit

  1. Hi

    Wie kann ich jetzt die Werte von type="freq" und type="percent" ausgeben? Mit <xsl:value-of select="catStat/@type='freq'" /> und <xsl:value-of select="catStat/@type='percent'" /> bekomme ich nur die Ausgabe "true" oder "false". Kann mir da jemand weiterhelfen?

    Wenn Du den Wert des Attributs haben willst:
    <xsl:value-of select="catStat/@type" />
    ist doch logisch, daß Du nur true oder false zurückkriegst, wenn Du einen Vergleich selektierst.

    Andreas

    1. Hallo,

      aber wie komme ich dann an die Werte, die die Attribute haben? Ich habe eine Tabelle gemacht, wobei der Wert von <catStat type="freq">1999</catStat> (also 1999) in einer Zelle und der Wert von <catStat type="percent">97.75</catStat> (97.75) in einer anderen Zelle ausgegeben werden soll. Wie mache ich das?

      Birgit

      Hi

      Wie kann ich jetzt die Werte von type="freq" und type="percent" ausgeben? Mit <xsl:value-of select="catStat/@type='freq'" /> und <xsl:value-of select="catStat/@type='percent'" /> bekomme ich nur die Ausgabe "true" oder "false". Kann mir da jemand weiterhelfen?

      Wenn Du den Wert des Attributs haben willst:
      <xsl:value-of select="catStat/@type" />
      ist doch logisch, daß Du nur true oder false zurückkriegst, wenn Du einen Vergleich selektierst.

      Andreas

      1. Hi,

        aber wie komme ich dann an die Werte, die die Attribute haben? Ich habe eine Tabelle gemacht, wobei der Wert von <catStat type="freq">1999</catStat> (also 1999) in einer Zelle und der Wert von <catStat type="percent">97.75</catStat> (97.75) in einer anderen Zelle ausgegeben werden soll. Wie mache ich das?

        Du weißt offensichtlich nicht, was ein Attributwert ist.
        Wert des Attributs type ist in einem Fall freq, im anderen Fall percent.

        Du willst scheinbar den Inhalt des catStat-Elements in dem Fall, daß der Wert des Type-Attributs freq (bzw. percent) ist - das ist definitiv kein Attributwert.

        Dann nimm:
        <xsl:value select="catStat[@type='freq']"/>
        bzw.
        <xsl:value select="catStat[@type='percent']"/>

        Andreas
        PS: bitte immer nur den Teil eines Postings quoten, auf den Du Dich beziehst.

  2. ich habe mal wieder ein kleines Problem mit XSL. Dazu folgender Ausschnitt aus der XML-Datei:

    ...
    <catgry>
       <catValu>1</catValu>
       <txt>Ja</txt>
       <catStat type="freq">1999</catStat>
       <catStat type="percent">97.75</catStat>
    </catgry>
    ...

    Wie kann ich jetzt die Werte von type="freq" und type="percent" ausgeben?

    <xsl:value-of select='@type'> wobei das jeweilige catStat-Element der aktuelle Kontextknoten sein muss, möglich wäre

    xsl:template match = catgry
      xsl:apply-templates select = catStat

    xsl:template match = catStat
      xsl:value-of select = @type

    Mit <xsl:value-of select="catStat/@type='freq'" /> und <xsl:value-of select="catStat/@type='percent'" /> bekomme ich nur die Ausgabe "true" oder "false". Kann mir da jemand weiterhelfen?

    Wenn schon konditional, dann mit eckigen Klammern:

    catStat[@type = 'perc']

    1. Hallo Björn,

      vielen Dank für Deine Hilfe, das war schon die Lösung!

      Birgit

      ich habe mal wieder ein kleines Problem mit XSL. Dazu folgender Ausschnitt aus der XML-Datei:

      ...
      <catgry>
         <catValu>1</catValu>
         <txt>Ja</txt>
         <catStat type="freq">1999</catStat>
         <catStat type="percent">97.75</catStat>
      </catgry>
      ...

      Wie kann ich jetzt die Werte von type="freq" und type="percent" ausgeben?

      <xsl:value-of select='@type'> wobei das jeweilige catStat-Element der aktuelle Kontextknoten sein muss, möglich wäre

      xsl:template match = catgry
        xsl:apply-templates select = catStat

      xsl:template match = catStat
        xsl:value-of select = @type

      Mit <xsl:value-of select="catStat/@type='freq'" /> und <xsl:value-of select="catStat/@type='percent'" /> bekomme ich nur die Ausgabe "true" oder "false". Kann mir da jemand weiterhelfen?

      Wenn schon konditional, dann mit eckigen Klammern:

      catStat[@type = 'perc']