这是一个明显的“新手”问题。我有以下xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Tag1>
<tag2>data 1</tag2>
<tag2>data 2</tag2>
</Tag1>
我想使用SaxonHE9使用以下xsl文件处理它:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:value-of select="Tag1/tag2"/>
</xsl:template>
</xsl:stylesheet>
输出结果为:
数据1
我想同时获得“数据1”和“数据2”
显然这是一个案例。在我的真实xml文件中,我有很多对tag2的例子。
感谢您帮助新用户。
斯蒂芬
答案 0 :(得分:0)
您需要更改:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
为:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
否则您处于backwards-compatible模式,xsl:value-of
将仅返回所选集合中第一个节点的值 - 就像在XSLT 1.0中一样。