J32: ausgabe mit übereinstimmung und 3 spalten

Beitrag lesen

Hallo,

Mensch Thomas ich muss dich nochmal in Anspruch nehmen. Ich hab jetzt festgestellt das es da doch noch ein Problem gibt. Ich versuch mal das zu erklären. Ich lasse mir als beispiel jetzt category 1 und 2 anzeigen. Dabei viel mir auf das nicht alle produkte erscheinen. Category 1 endet in der letzten zeile mit einer spalte. Daraufhin fallen die ersten zwei aus der category 2 weg. Ich nehme an das liegt an dem mod 3 = 1.

Das verstehe ich jetzt nicht. Bzw, wenn du was an dem XSL geändert hast, poste das bitte dazu.

Grüße
Thomas

Das XSL file hat sich nicht geändert. Ich habe lediglich die nummer für die category von 1 auf 3 verändert. Dann erscheinen 6 meiner Produkte. In category=3 befinden sich jedoch 8 Produkte.

<?xml version="1.0" encoding="ISO-8859-1"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
<xsl:output method="html" indent="yes" encoding="iso-8859-1" />  
<xsl:template match="/">  
 <html>  
 <head>  
 <link rel="stylesheet" type="text/css" href="./css/main.css"/>  
 </head>  
 <body>  
  
   <table class="table">  
   <xsl:for-each select="products/row[category = 3 and position() mod 3 = 1]">  
     <tr>  
     <xsl:for-each select=".|following-sibling::row[category = 3 and position() &lt; 3 ]">  
      <td class="td">  
       <xsl:element name="a">  
       <xsl:attribute name="href">  
       <xsl:value-of select="/link"/>  
       </xsl:attribute>  
         <img>  
         <xsl:attribute name="src">  
          <xsl:value-of select="image_link"/>  
         </xsl:attribute>  
         <xsl:attribute name="alt">  
          <xsl:value-of select="title"/>  
         </xsl:attribute>  
         </img><br/>  
         <xsl:value-of select="title"/>  
       </xsl:element><br/>  
       <xsl:value-of select="price"/><br/>  
       <xsl:value-of select="category"/>  
      </td>  
      </xsl:for-each>  
</tr>  
  
</xsl:for-each>  
   </table>  
 </body>  
 </html>  
</xsl:template>  
  
</xsl:stylesheet>

Wenn ich jetzt in beiden for-each zeilen das category = 1 rausnehme, werden mir alle Produkte aus allen Kategorien angezeigt. Aufgrund mod 3 = 1 wird aus normalerweise drei Zeilen eine gemacht. Das bewirkt, das durch die Anzahl an Produkten, das letzte Produkt von Kategorie 2 zusammen mit zwei Produkten aus Kategorie 3 eine Zeile bildet. Lasse ich mir jetzt nur Kategorie 3 anzeigen, fehlen mir genau diese zwei Produkte.

Weil das jetzt alles so umständlich klingt hier zwei links um es zu veranschaulichen.

Link 1 zeigt alle Produkte an. Die letzte Nummer unter jedem Produkt ist die Kategorie Nr. damit du siehst wo Kategorie 2 aufhört und 3 anfängt.

http://tshirt4you.cwc.tc/heartsinlove.XML

Link 2 zeigt nur Kategorie 3. Wie du hier siehst fehlen jetzt die zwei Produkte wie schon oben beschrieben.

http://tshirt4you.cwc.tc/heartsinlov.XML

danke

J32