我有一個問題,我需要從XML生成HTML,我可以有多個嵌套在對方的標籤。我如何通過遞歸來傳遞它們?Xslt遞歸與動態XML
這裏是從XML樣本:
<rows>
<row>
<cell>1</cell>
<cell>2</cell>
<cell>1</cell>
<cell>2</cell>
<row>
<cell>3</cell>
<cell>4</cell>
<row>
<cell>5</cell>
<cell>6</cell>
<cell>6</cell>
</row>
</row>
</row>
</rows>
我的XSLT是:
<table>
<th>1</th><th>2</th>3<th>4</th><th>5</th>
<xsl:for-each select="rows/row">
<tr>
<xsl:for-each select="cell">
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
<xsl:for-each select="row">
<tr>
<xsl:for-each select="cell">
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
所以現在我的問題是我怎麼能顯示每行中的所有atributes?
編輯:從XSLT生成HTML
<html><body>
<table>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
<tr>
<td>1</td>
<td>2</td>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
</table>
</body></html>
第二個編輯:
XSLT:
<xsl:template match="cell">
<td style="overflow:hidden;border:1px solid black;">
<div style="width:100px;height:20px;margin-bottom: 10px;margin-top: 10px;">
<xsl:variable name="id1" select="row/@id"/>
<xsl:if test="starts-with(id1, 'Dir')">
<xsl:value-of select="cell/@image"/>
</xsl:if>
<xsl:value-of select="."/>
</div>
</td>
</xsl:template>
XML:
<row id="Dir_44630">
<cell>Text</cell>
<cell>1</cell>
<cell>1.00</cell>
<cell>3</cell>
<cell 4</cell>
<cell>5</cell>
<cell>6</cell>
<cell>7</cell>
</row>
不要使用'for-each',它會讓你生氣。 XSLT是一種聲明性語言。將樣式表基於模板而非循環要容易得多。另外,你的意思是什麼?您的示例輸入中沒有任何內容或輸出。 – toniedzwiedz
通過屬性我的意思是獲取單元格值:1,2,3,4,5和6. – Aleks
您可以顯示此文檔所需的輸出嗎?我不確定你想要達到什麼目的。 – toniedzwiedz