我有以下XML文件:
<club>
<person>
<name>name</name>
<ranking>1</ranking>
<nationality>spanish</nationality>
<joined>2007</joined>
<joined>2009</joined >
</person>
<person>
<name>name</name>
<ranking>2</ranking>
<nationality>english</nationality>
</person>
</club>
我想创建一个XSLT文件,可以搜索XML并检查此人是否已加入(<joined>
)。然后我想显示这个人加入表格的名称和年份。我不确定这是否完全可能,但任何帮助将不胜感激。 (并非列表中的所有人都会加入)。
答案 0 :(得分:3)
使用此:
XSLT 2.0
<xsl:template match="information">
<table>
<xsl:for-each select="person[joined]">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="joined" separator=", "/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
请参阅https://xsltfiddle.liberty-development.net/eiZQaEZ
处的 XSLT 2.0 转换对于 XSLT 1.0 ,您可以将第二个td
更改为
<td><xsl:for-each select="joined">
<xsl:value-of select="."/>
<xsl:if test="position() != last()">, </xsl:if>
</xsl:for-each></td>
转换 XSLT 1.0 https://xsltfiddle.liberty-development.net/eiZQaEZ/1