如何从坏xml获取带有xpath的文本?

时间:2011-05-28 23:08:47

标签: xslt xpath

我有一个“糟糕的xml结构”文件:

<cars>
    <car>Toyota
        <country>Japan</coutry>
        ....
    </car>
</cars>

如何使用Xpath正确获取正确的单词( Toyota )? 我试过了:

<xsl:value-of select = "cars/car/text()"/>

它有效,但我认为有更合适的方法。 感谢。

1 个答案:

答案 0 :(得分:3)

使用

/cars/car/text()[1]

或者如果要丢弃上面选择的文本节点中的大部分空白区域,请使用:

normalize-space(/cars/car/text()[1])

请注意,在XSLT 1.0中<xsl:value-of>只输出select属性中表达式选择的节点集的第一个节点的字符串值,<xsl:copy-of>将输出所有节点集中的节点。在XSLT 2.0中,偶数<xsl:value-of>输出节点集中的所有节点。

因此,出于可移植性,可升级性以及简单地避免错误的目的,最好指定从节点集中输出哪个节点 - 即使使用<xsl:value-of>