XSL - schleife in einer schleife

kalyx

Grünschnabel
ist es möglich eine schleife in einer schleife zu bauen?
z.b. so


PHP:
<xsl:for-each select="document/elements/element[@type='titel']">   
<table border="0"> 
  <tr> 
    <td> 
    </td> 
    <td rowspan="2"> 
    <xsl:for-each select="document/elements/element[@type='titel']">   
      <div id="title_zoom"><xsl:value-of disable-output-escaping="yes" select="current()" /></div> 
    </xsl:for-each>       
    </td> 
   </tr> 
   <tr> 
    <td> 
    <xsl:for-each select="document/elements/element[@type='text']">   
      <div id="teaser_zoom"><xsl:value-of disable-output-escaping="yes" select="current()" /></div> 
    </xsl:for-each>      
    </td> 
  </tr> 
</table> 
</xsl:for-each>
 
das problem ist die erste schleife funktioniert wie sie soll aber bekomme dann bei den andern schleifen keinen inhalt angezeigt. ziel ist ich möchte pro titel eine tabelle mit titel und text erstellen.
 
das problem ist die erste schleife funktioniert wie sie soll aber bekomme dann bei den andern schleifen keinen inhalt angezeigt.
Das ist normal, da du relative XPath Pfade angegeben hast.

In der Schleife bist du beim Knoten "a/b/c". Wenn du dann nochmal relativ zu diesem Pfad "a/b/c" angibst, suchst du nach Knoten "a/b/c/a/b/c".

Vermutlich wolltest du absolute Pfadangaben von der Dokumentwurzel verwenden: "/a/b/c"

Gruß
 
wie muss das dann aussehen?

PHP:
<xsl:for-each select="document/elements/element[@type='titel']">    
<table border="0">  
  <tr>  
    <td>  
    </td>  
    <td rowspan="2">  
    <xsl:for-each select="element[@type='titel']">    
      <div id="title_zoom"><xsl:value-of disable-output-escaping="yes" select="current()" /></div>  
    </xsl:for-each>        
    </td>  
   </tr>  
   <tr>  
    <td>  
    <xsl:for-each select="element[@type='text']">    
      <div id="teaser_zoom"><xsl:value-of disable-output-escaping="yes" select="current()" /></div>  
    </xsl:for-each>       
    </td>  
  </tr>  
</table>  
</xsl:for-each>

geht leider auch nicht
 
hey danke das hat funktioniert, aber jetzt habe ich ein neues problem =) in jeder tabelle steht nun das gleiche drin. ich hab beispielsweise 2 titel und 2 texte.

so ist es momentan:
<tabelle>
titel A
titel B
text A
text B
</tabelle>
<tabelle>
titel A
titel B
text A
text B
</tabelle>

es soll aber so aussehen:

<tabelle>
titel A
text A
</tabelle>
<tabelle>
titel B
text B
</tabelle>

evtl. statt dem select="current()" etwas anderes nehmen? kenn mich leider nicht gut genug aus...
 
Dazu müßte man wissen welcher Titel und welcher Text zusammengehören.

Dazu müßte man dann mal die XML Struktur ansehen.

Gruß
 
in der xml steht nicht viel drin. einfach 2 elemente
z.b.

<element id="text" description="xml.xlbl.text" type="htmledit" default="true" singleinstance="false" />
 
Zurück