gpt4 book ai didi

xml - 解析出节点和属性 XML::LibXML

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

我正在尝试搜索属性的值 (xxxx01) 并返回节点 (0x100540) 。这是我的 xml:

  <model-response-list error="EndOfResults" throttle="86" total-models="86" xmlns="http://www.ca.com/spectrum/restful/schema/response">
<model-responses>
<model mh="0x100540">
<attribute id="0x1006e">xxxx01</attribute>
</model>
<model mh="0x100c80">
<attribute id="0x1006e">xxx02</attribute>
</model>
</model-responses>
</model-response-list>

我在下面的代码中将 xml 放在 var 中:

#Get restful req
$client->setHost('http://wltsvpnms02.aigfpc.com:8080');
$client->GET('/spectrum/restful/devices?attr=0x1006e', $headers) || die "$!";
my $parser = XML::LibXML->new();
my $xmldoc = XML::LibXML->load_xml( string => $client->responseContent() )|| die "$!";

我已经尝试了每一个 xpath 搜索,我可以找到一些文档(也许我只是无法理解它),但无法想出解决方案。

感谢您的帮助。

最佳答案

这似乎有效。

#!/usr/bin/perl

use warnings;
use strict;
use 5.010;

use XML::LibXML;

my $xml = '<model-response-list error="EndOfResults" throttle="86" total-models="86" xmlns="http://www.ca.com/spectrum/restful/schema/response">
<model-responses>
<model mh="0x100540">
<attribute id="0x1006e">xxxx01</attribute>
</model>
<model mh="0x100c80">
<attribute id="0x1006e">xxx02</attribute>
</model>
</model-responses>
</model-response-list>';

my $xmldoc = XML::LibXML->load_xml( string => $xml );

my @nodes = $xmldoc->findnodes(q(//*[text()='xxxx01']/../@mh));

foreach (@nodes) {
say $_->value;
}

我的 XPath 有点生疏了。可能有更好的解决方案。

关于xml - 解析出节点和属性 XML::LibXML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25430262/

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