我的xml看起来像这样
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>
我想要实现的是html表,其中行数是动态的,例如:
表应如下所示:
TABLE HEADER
<tr>
<td>Title</td>
<td>Empire Burlesque</td>
</tr>
<tr>
<td>Artist</td>
<td>Bob Dylan</td>
</tr>
<tr>
<td>country</td>
<td>USA</td>
</tr>
继续执行可用于cd的所有节点。
我希望能够为<cd>
下的可用节点数循环,并为html输出中的每个节点生成单独的<tr>
。因此,我不必将<xsl:value-of select>
与特定的xml节点名称一起使用。
任何人都可以帮我理解这部分的基本知识吗?感谢。
答案 0 :(得分:0)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="catalog">
<table>
<xsl:apply-templates select="cd/*"/>
</table>
</xsl:template>
<xsl:template match="cd/*">
<tr>
<td>
<xsl:value-of select="name()"/>
</td>
<td>
<xsl:value-of select="."/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
输出:
<table>
<tr>
<td>title</td>
<td>Empire Burlesque</td>
</tr>
<tr>
<td>artist</td>
<td>Bob Dylan</td>
</tr>
<tr>
<td>country</td>
<td>USA</td>
</tr>
<tr>
<td>company</td>
<td>Columbia</td>
</tr>
<tr>
<td>price</td>
<td>10.90</td>
</tr>
<tr>
<td>year</td>
<td>1985</td>
</tr>
<tr>
<td>title</td>
<td>Hide your heart</td>
</tr>
<tr>
<td>artist</td>
<td>Bonnie Tyler</td>
</tr>
<tr>
<td>country</td>
<td>UK</td>
</tr>
<tr>
<td>company</td>
<td>CBS Records</td>
</tr>
<tr>
<td>price</td>
<td>9.90</td>
</tr>
<tr>
<td>year</td>
<td>1988</td>
</tr>
</table>