gpt4 book ai didi

xml - 为什么我从 getElementsByTagName 得到 "Invalid predicate"错误?

转载 作者:数据小太阳 更新时间:2023-10-29 01:59:44 25 4
gpt4 key购买 nike

我有以下 XML:

<config>
<version general="1.2.3">
<subtype type="a" version="1.2" />
<subtype type="b" version="3.6" />
...
</version>
...
</config>

我在 Perl 中有一些代码可以从数据库中获取配置节点。

在我得到它之后,如果我尝试以下操作:

my $elem = $cfg->getElementsByTagName("version");
my $generalVer = $elem ? $elem->get_node(1)->getAttribute("general") : undef;

一切正常,$generalVer 包含 1.2.3,正如预期的那样。

但如果我尝试这样做:

my $elem = $cfg->getElementsByTagName("version/subtype[@type='a']");
my $aVersion = $elem ? $elem->get_node(1)->getAttribute("version") : undef;

失败并显示消息“无效谓词”。

有人可以帮助解决这个问题吗?

最佳答案

我强烈怀疑 "version/subtype[@type='a']" 实际上不是标签名称。这看起来像一个 XPath 查询。

我假设您使用的是类似 XML::DOM 的东西解析此 XML。如果你想使用 XPath,那么你可以使用 XML::DOM::XPath ,它添加了 XPath 支持。

例如,

 use XML::DOM;
use XML::DOM::XPath;
...
my $elem = $cfg->findnodes( q{//version/subtype[@type='a']} );

关于xml - 为什么我从 getElementsByTagName 得到 "Invalid predicate"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1965879/

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