Hallo,
<RowData>
<ResultTextData>
<StdText/>
<Kommentar>1</Kommentar>
</ResultTextData>
<ResultTextData>
<StdText />
<Kommentar>Änderung HDM</Kommentar>
</ResultTextData>
</RowData>
...Ich will eine zweispaltige Tabelle in html ausgeben
mein xslt:
...
<xsl:template match=".../.../RowData/ResultTextData">
was ist das: ^^^^^^^^^^ ?
<xsl:template match="RowData/ResultTextData">
<tr>
<td>
<xsl:apply-templates select ="Kommentar"/>
</td>
<td>
<xsl:apply-templates select ="Kommentar"/>
</td>
</tr>
Aber so bekomme ich jedesmal jeweils eine 1 in der ersten Zeile in beiden Spalten und den Text Änderung HDM in der zweiten Zeile auch in beiden Spalten.
Klein wenig verwirrt?
Du hast also:
S1: Spalte 1 / Z1: Zeile 1
S2: Spalte 2 / Z2: Zeile 2
-------------------
| | |
| 1 | 1 |
| S1:Z1 | S2:Z1 |
-------------------
| | |
| HDM | HDM |
| S1:Z2 | S2:Z2 |
-------------------
Das ist soweit absolut korrekt vom XSLT.
Das Template Trifft auf jede "ResultTextData", d.h. es wird für jede ResultTextData eine <tr> erzeugt. Dann Ruft du das Template für Kommentar auf,das gilt natürlich für das "Kommentar"-Element _im_ aktuellen ResultTextData, deshalb hast du es zwei mal stehen (du ruft es ja auch zwei mal auf).
Dabei sollen sie in einer Zeile nebeneinander (1 in der ersten und der Text in der zweiten Spalte) ausgegeben werden.
Also willst du:
-------------------
| | |
| 1 | HDM |
| S1:Z1 | S2:Z1 |
-------------------
Kann mir jmd. sagen was ich ändern muss?
<xsl:template match="RowData">
<tr>
<xsl:for-each select="ResultTextData">
<td>
<xsl:apply-templates select="Kommentar" />
</td>
</xsl:for-each>
</tr>
</xsl:template>
Grüße
Thomas