我有简单的xml,如下所示
<Scores>
<Score1>
<Name>A</Name>
<Address>Address1</Address>
</Score1>
<Score2>
<Name>B</Name>
<Address>Address2</Address>
</Score2>
</Scores>
我想在HTML表格中输出如下所示。 (HTML表格将有2列标题“名称”和“地址”,我需要它在行中的值)我不想硬编码“名称”和“地址”标题。他们将来可能会改变。
Name Address
A Address1
B Address2
能告诉我XSLT的内容吗?
答案 0 :(得分:1)
使用:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/Scores">
<table>
<tr>
<xsl:for-each select="*[1]/*">
<th>
<xsl:value-of select="local-name()"/>
</th>
</xsl:for-each>
</tr>
<xsl:apply-templates select="*"/>
</table>
</xsl:template>
<xsl:template match="*">
<tr>
<xsl:for-each select="*">
<td>
<xsl:value-of select="."/>
</td>
</xsl:for-each>
</tr>
</xsl:template>
</xsl:stylesheet>
输出:
<table>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
<tr>
<td>A</td>
<td>Address1</td>
</tr>
<tr>
<td>B</td>
<td>Address2</td>
</tr>
</table>