Doldi: Problem mit XML/XSL

Hallo stehe vor folgendem Problem, und kenne mich eigentlich garnicht mit XML oder XSL aus ...

XML-Vorlage
..
    <programList>
      <program>SDT</program>
      <program>FTO</program>
      <program>SDGT</program>
    </programList>
..
ParserXSL

<xsl:variable name="program"><xsl:value-of select="i:programList/i:program" /></xsl:variable>

wie kann ich die Komplette programList auslesen? Bisher hatte ich nur Listen wo <Namen> Verschieden waren ... da konnte ich das mit einer for-each lösen

hier sind alle gleich somit nimmt er Natürlich immer nur den ersten aus der Liste und speichert mir den in die Variable "program"

Wie bekomm ich die anderen werte?

kann mir da bitte jemand helfen? wär super danke

akzeptierte Antworten

  1. Hallo Doldi,

    wie kann ich die Komplette programList auslesen? Bisher hatte ich nur Listen wo <Namen> Verschieden waren ... da konnte ich das mit einer for-each lösen

    hier sind alle gleich somit nimmt er Natürlich immer nur den ersten aus der Liste und speichert mir den in die Variable "program"

    Wie bekomm ich die anderen werte?

    Was soll denn als Ziel-Ausgabe entstehen bzw. welchen Zweck erfüllt die Variable? Mit xsl:for-each oder xsl:apply-templates lässt sich diese Struktur verarbeiten, damit kann bei Bedarf auch die Variable neu erzeugt/befüllt werden.

    Grüße, Thomas

    1. Hallo Thomas,

      Was soll denn als Ziel-Ausgabe entstehen bzw. welchen Zweck erfüllt die Variable? Mit xsl:for-each oder xsl:apply-templates lässt sich diese Struktur verarbeiten, damit kann bei Bedarf auch die Variable neu erzeugt/befüllt werden.

      Grüße, Thomas

      wir haben verschiedene spalten unteranderem diese "Programm"spalte im moment kommt in der Ausgabe nur ein wert (der erste) in diese spalte aber ich benötige alle werte in dieser Spalte.

      Grüße Doldi

      1. Hallo Doldi,

        wir haben verschiedene spalten unteranderem diese "Programm"spalte im moment kommt in der Ausgabe nur ein wert (der erste) in diese spalte aber ich benötige alle werte in dieser Spalte.

        Kann ich mir so nicht vorstellen. Bitte ein testfähiges Eingabedokument und die gesuchte Ausgabe posten, dann schaue ich nochmal drüber.

        Grüße, Thomas

        1. <xsl:for-each select="i:programList/i:program">
          <xsl:value-of select="." />
          <xsl:variable name="following-sibling"><xsl:value-of select="following-sibling::*[1]" /></xsl:variable> 
          <xsl:if test="$following-sibling != ''">
          

          das problem hat sich gelöst, trotzdem danke ;)

          1. Hallo Doldi,

            <xsl:for-each select="i:programList/i:program">
            <xsl:value-of select="." />
            <xsl:variable name="following-sibling"><xsl:value-of select="following-sibling::*[1]" /></xsl:variable> 
            <xsl:if test="$following-sibling != ''">
            

            das problem hat sich gelöst, trotzdem danke ;)

            Das mit der Achse erschließt sich mir aus der Ursprungsfrage nicht. Dann hätte wohl auch das gereicht:

            <xsl:for-each select="i:programList/i:program">
              <xsl:value-of select="."/>
            </xsl:for-each>
            

            Die xsl:if-Abfrage kann dort auch mit test=". != ''" hinein, alternativ test="string-length(.) > 0".

            Grüße, Thomas