我对 XML/XSL 的理解还远远不够。
我有一个如下所示的 XML 文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<AllNames>
<Tier2>
<Binary>0</Binary>
<Name>One</Name>
<Tier3>
<Tier4>
<Key>1</Key>
<Var2>Durp</Var2>
</Tier4>
</Tier3>
</Tier2>
<Tier2>
<Binary>1</Binary>
<Name>Two</Name>
<Tier3>
<Tier4>
<Key>1</Key>
<Var2>Durp</Var2>
</Tier4>
</Tier3>
<Tier3>
<Tier4>
<Key>2</Key>
<Var2>Durp Durp</Var2>
</Tier4>
</Tier3>
</Tier2>
</Tier1>
我正在使用如下所示的 XSL 文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table>
<tr bgcolor="#9acd32">
<th>Name</th>
<th>Key</th>
<th>Var2</th>
</tr>
<xsl:for-each select="AllNames/Tier2">
<tr>
<td><xsl:value-of select="Name"/></td>
<xsl:for-each select="Tier3/Tier4">
<td><xsl:value-of select="Key"/></td>
<td><xsl:value-of select="Var2"/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
但我需要主键/第一列是“键”。现在,具有多个第 3 层嵌套的元素将水平输出,即全部在一行中。我希望每个“键”与相关数据在自己的行中:
键名 Var2
1 一滴
1 两滴
2 两滴滴滴