我有一个带有爱好列表的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<users>
<user>
<fname>somename</fname>
<hobbies>
<hobby>Movie</hobby>
<hobby>Trekking</hobby>
</hobbies>
</user>
</users>
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>
<xsl:for-each select="users/user">
<h2>
<xsl:value-of select="fname" />
</h2>
<h3>Hobbies :</h3>
<xsl:for-each select="hobbies">
<xsl:value-of select="." />
<xsl:if test="position() != last()">
<xsl:text> , </xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我在这里使用
<xsl:if test="position() != last()">
<xsl:text> , </xsl:text>
</xsl:if>
在业余爱好列表之间生成逗号
但是显示的值没有逗号。
我正在http://www.w3schools.com/xsl/的tryit编辑器上测试它。
这里有什么不对?我该怎么办?
答案 0 :(得分:3)
我认为你有一个错字:<xsl:for-each select="hobbies/hobby">
<强>更新强>:
纠正XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="users/user">
<h2>
<xsl:value-of select="fname" />
</h2>
<h3>Hobbies :</h3>
<xsl:for-each select="hobbies/hobby">
<xsl:value-of select="." />
<xsl:if test="position() != last()">
<xsl:text> , </xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
输出:
<html>
<body>
<h2>somename</h2>
<h3>Hobbies :</h3>Movie , Trekking</body>
</html>