处理重复的xml标记时出现问题

时间:2016-09-09 18:04:34

标签: xml xslt

这是一个明显的“新手”问题。我有以下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的例子。

感谢您帮助新用户。

斯蒂芬

1 个答案:

答案 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中一样。