2016-05-25 3 views
0

Ich versuche, eine Tabelle mit diesem zu machen:Xpath - Ich brauche Hilfe einer Tabelle für eine html machen

Eingang:

<root> 
<vendedor> 
    <nombre>nombre1</nombre> 
    <descrip>descrip1</descrip> 
</vendedor> 
<vendedor> 
    <nombre>nombre1</nombre> 
    <descrip>descrip2</descrip> 
</vendedor> 
<vendedor> 
    <nombre>nombre1</nombre> 
    <descrip>descrip3</descrip> 
</vendedor> 
.... 
<vendedor> 
    <nombre>nombre2</nombre> 
    <descrip>descrip1</descrip> 
</vendedor> 
<vendedor> 
    <nombre>nombre2</nombre> 
    <descrip>descrip3</descrip> 
</vendedor> 
.... 
</root> 

xsl:

<xsl:for-each select="//vendedor[not(nombre=preceding-sibling::vendedor/nombre)]/nombre"> 
<xsl:value-of select="."/> 
    <xsl:for-each select="//vendedor[nombre=current()]/descrip"> 
    <xsl:value-of select="."/> 
    </xsl:for-each> 
</xsl:for-each> 

Was ich will, ist eine Tabelle wie diese Umwandlung der Xslt in ein HTML mit tr, td und Sachen wie folgt:

|_____________nombre____________| 
|descrip|descrip|descrip|descrip| 
|descrip|descrip|descrip|descrip| 

Ich habe versucht, aber ich bekomme nicht, was ich will, also ..., Kann mir jemand helfen?

Erwarteter Ausgang:

<table> 
<tr> 
    <th>nombre</th> 
</tr> 
<tr> 
    <td>descrip</td> 
    <td>descrip</td> 
    <td>descrip</td> 
    <td>descrip</td> 
</tr> 
<tr> 
    <td>descrip</td> 
    <td>descrip</td> 
    <td>descrip</td> 
    <td>descrip</td> 
</tr> 
<tr> 
..... 
</tr> 
.... 
<tr> 
    <th>nombre</th> 
</tr> 
<tr> 
    <td>descrip</td> 
    <td>descrip</td> 
    <td>descrip</td> 
    <td>descrip</td> 
</tr> 
..... 
</xsl:for-each> 
</table> 
+0

Ihre Frage ist nicht klar. Bitte zeigen Sie ein Beispiel für die Eingabe und die erwartete Ausgabe (vorzugsweise als Code, nicht als Zeichnung). –

+0

ok, also sowas. – Raikko

+0

Ich sehe immer noch keine Eingabe. Wie auch immer, ich glaube, Sie finden die Antwort hier: http://StackOverflow.com/A/31706512/3016153 –

Antwort

0

Sie können wie diese in HTML eine Tabelle machen:

<xsl:template match="/"> 
    <html> 
    <body> 
    <h2>My CD Collection</h2> 
    <table border="1"> 
    <tr bgcolor="#9acd32"> 
     <th>Title</th> 
     <th>Artist</th> 
    </tr> 
    <xsl:for-each select="catalog/cd"> 
    <tr> 
     <td><xsl:value-of select="title"/></td> 
     <td><xsl:value-of select="artist"/></td> 
    </tr> 
    </xsl:for-each> 
    </table> 
    </body> 
    </html> 
</xsl:template> 

Wo <tr> Aufenthalte für Reihen und <td> für Spalten.

Beispiel von http://www.w3schools.com/xsl/xsl_transformation.asp

Tabelle für Ihr Beispiel wäre:

"<table border="1"> 
    <tr bgcolor="#9acd32"> 
     <th>nombre</th> 
    </tr> 
    <xsl:for-each select="catalog/cd"> 
    <tr> 
     <td><xsl:value-of select="title"/></td> 
     <td><xsl:value-of select="title"/></td> 
     <td><xsl:value-of select="title"/></td> 
     <td><xsl:value-of select="title"/></td> 
     <td><xsl:value-of select="title"/></td> 
    </tr> 
    </xsl:for-each> 
    </table>" 
+0

ok, ich werde bearbeiten, die Sache ist, dass ich die Xslt transformieren will in eine html und das Ergebnis eine Tabelle wie diese – Raikko

+0

Ok, es ist mehr oder weniger, was ich will, aber ich bekomme mehr Ergebnisse, so gibt es einen Weg, es zu tun, wie mehr verteilt? ich meine, wie alle 5 td und tr tr mit 5 td, ist es möglich? – Raikko