如何使用 xpath 从错误的 xml 中获取文本?

发布于 2024-11-11 02:26:39 字数 339 浏览 0 评论 0原文

我有一个“错误的 xml 结构”文件:

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

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

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

I have a "bad xml structure" file:

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

How to correctly get the right word (Toyota) using Xpath?
I tried:

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

It works, but I think there are more appropriate methods.
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝不服输 2024-11-18 02:26:39

使用

/cars/car/text()[1]

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

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

请注意,在 XSLT 1.0 中 仅输出由 select 属性中的表达式选择的节点集的第一个节点的字符串值,< /code> 将输出所有节点集中的节点。在 XSLT 2.0 中,甚至 也会输出节点集中的所有节点。

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

Use:

/cars/car/text()[1]

or if you want to discard most of the white space in the text node selected above, use:

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

Do note that while in XSLT 1.0 <xsl:value-of> outputs the string valu only of the first node of the node-set selected by the expression in the select attribute, <xsl:copy-of> will output all the nodes in the node-set. In XSLT 2.0 even <xsl:value-of> outputs all the nodes in the node-set.

Therefore, for purposes of portability, upgradability and simply for avoiding errors, it is better to specify which exactlyy node from the nodeset is to be output -- even when using <xsl:value-of>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文