我的XML文件结构如下 -
<products>
<product>
<ptype>fruits</ptype>
<varieties>
<variety>
<id>a</id>
<cost>100</cost>
</variety>
<subvarieties>
<variety>
<id>b</id>
<cost>100</cost>
</variety>
<subvarieties>
<variety>
<id>c</id>
<cost>100</cost>
</variety>
</subvarieties>
</variety>
</subvarieties>
<variety>
<id>d</id>
<cost>75</cost>
</variety>
</varieties>
</product>
<product>
<type>vegetables</type>
<varieties>
<variety>
<id>e</id>
<cost>50</cost>
</variety>
</varieties>
</product>
我需要根据节点<variety>
将上面的xml重组为HTML表格格式。这意味着无论XML中节点<variety>
的位置如何,我都需要选择该节点下的元素。有时节点可能是空的,即节点下没有元素。所需的XML如下 -
<html>
<body>
<table border="1">
<tr>
<td>a</td>
<td>100</td>
</tr>
<tr>
<td>b</td>
<td>100</td>
</tr>
<tr>
<td>c</td>
<td>100</td>
</tr>
<tr>
<td>d</td>
<td>75</td>
</tr>
<tr>
<td>e</td>
<td>50</td>
</tr>
</table>
</body>
</html>
尝试过XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:for-each select="/products">
<xsl:for-each select="//variety">
<tr>
<td><xsl:value-of select="." /></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我收到上述XSLT的空响应。任何帮助都是一个很好的补充。
答案 0 :(得分:1)
适合我:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:for-each select="/products">
<xsl:for-each select=".//variety">
<tr>
<td><xsl:value-of select="id" /></td>
<td><xsl:value-of select="cost" /></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>