Announcement

Collapse
No announcement yet.

Laufvariable bei for-each

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Laufvariable bei for-each

    Moin,


    ich habe ein ernstes Problem.

    Beim durchlaufen meiner XML Datei mittels for-each in XSLT möchte ich alle Elemente bei der Anzeige durchnummerieren. z.B. um individuelle IDs für XHTML- Formulare vergeben zu können.


    Könnt ihr mir weiterhelfen?


    Vielen Dank
    Philipp

  • #2
    Etwas genauer bitte. Ein kurzes Beispiel wäre gut.

    Comment


    • #3
      Moin,


      folgende XML Datei:

      Code:
      <FRAGENKATALOG>
        <FRAGENELEMENT>
          <FRAGE>Wer ist Cool</FRAGE>
          <ANTWORT>Ich</ANTWORT>
          <ANTWORT KORREKT="TRUE">Du</ANTWORT>
          <ANTWORT>Er</ANTWORT>
          <ANTWORT>Sie</ANTWORT>
        </FRAGENELEMENT>
      
        <FRAGENELEMENT>
          <FRAGE>Idfgch</FRAGE>
          <ANTWORT>Idfgch</ANTWORT>
          <ANTWORT>Dudfg</ANTWORT>
          <ANTWORT KORREKT="TRUE">Erdg</ANTWORT>
          <ANTWORT>es</ANTWORT>
        </FRAGENELEMENT>
      </FRAGENKATALOG>
      Code:
      <xsl:for-each select="FRAGENELEMENT">
      			<p><b><xsl:value-of select="FRAGE"/></b>
      			<ul>
      			<xsl:for-each select="ANTWORT">
      				<li><input type="radio" name="Frage1" value="Frage1Antwort1"/><xsl:apply-templates /></li>
      
      			<xsl:if test="@KORREKT='TRUE'">
      			Hier muss irgendein hidden field oder so zur Überprüfung hin
      			</xsl:if>
      			</xsl:for-each>
      			</ul>
      			</p>	
      </xsl:for-each>
      FrageX und FrageXAntwortX - dabei soll halt das X durch eine Laufvariable ersetzt werden...



      Gruß
      Philipp

      Comment


      • #4
        Im xsl:for-each-Block kann die aktuelle Position mittels position() abgefragt und z. B. nach einem Buchstaben ausgegeben werden. Vielleicht bringt auch die Funktion generate-id() etwas.

        Comment


        • #5
          Hallo,


          position() ist quasi perfekt. Wie bekomme ich es nur jetzt an die richtige Stelle?

          ich muss es ja quasi innerhalb eines HTML Tags benutzen..


          Vielen Dank auf jeden Fall schonmal!

          Comment


          • #6
            Ansatz:
            Code:
            <input type="radio" name="Frage{position()}" value="Frage{position()}Antwort{position()}"/>
            Für die fortlaufende Antwort bietet sich ggf. eine zusätzliche Variable an, die analog verwendet werden kann.

            Comment

            Working...
            X