gpt4 book ai didi

xml - 打印多个匹配的元素名称

转载 作者:行者123 更新时间:2023-12-03 17:25:39 26 4
gpt4 key购买 nike

我试图打印多个元素的名称,但我只能说服 XPath 输出一个。

鉴于此 XML:

<xml>
<foob>931</foob>
<arba>478</arba>
<zfoo>892</zfoo>
</xml>

我试试这个并得到 foob :
name(//*[contains(name(), "foo")])

我尝试这个并得到一个关于无效表达式的错误:
//*[contains(name(), "foo")]/name()

虽然这很好用:
//*[contains(name(), "foo")]/text()

我在命令行上,并且都尝试过 xmllintxpath (来自 Perl 的 XML-XPath 模块)具有相同的结果。

我怎样才能同时获得 foobzfoo回来?

最佳答案

XPath 1.0 ,你的第一个 XPath,

name(//*[contains(name(), "foo")])

结果只是 "foob"因为 XPath 1.0 只将所选节点集的第一个成员传递给 name() .获取 "foob" 的列表和 "zfoo" ,您必须使用托管 XPath 调用的语言(XSLT、Python、Java 等)遍历选定的节点集。

XPath 2.0 ,您的第二个 XPath,
//*[contains(name(), "foo")]/name()

可以很好地获取 "foob" 的列表和 "zfoo"直接通过 XPath 单独。

关于xml - 打印多个匹配的元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44595035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com