【发布时间】:2016-09-25 17:50:10
【问题描述】:
我正在尝试解析下面的 xml 文件并获取 bBranch,Branch 的值...
<xml-fragment xmlns:con="http://some web link">
<con:properties>
<con:string name="bBranch" value="in" export="never" />
<con:string name="Branch" value="in" export="never" />
<con:boolean name="cBranch" value="0" export="never" />
</con:properties>
</xml-fragment>
我尝试过使用 XML:LibXML 和 XML::DOM
这是我尝试过的代码:-
use XML::DOM;
my $file ="above.xml";
my $parser = XML::DOM::Parser->new();
my $doc = $parser->parsefile($file);
foreach my $entry ($doc->getElementsByTagName('con:properties')) {
my $parent = $entry->getElementsByTagName('con:string')->item(0)->getFirstChild->getNodeValue;
print $parent;
}
输出:- 无法在 ./test2.pl 第 6 行对未定义值调用方法“getNodeValue”。
我是否遗漏了什么或走错了方向?
请帮忙。 提前致谢!
:更新:
如果我要如下更改我的 xml 文件,
<xml-fragment xmlns:con="http://some web link">
<con:properties>
<con:string name="Branch" value="Batman" export="never" />
<con:boolean name="cBranch" value="$Branch" export="never" />
</con:properties>
</xml-fragment>
我怎样才能获得cBranch 的值,这样它才能获取$Branch 值Batman?
【问题讨论】:
-
XML::LibXML 教程在working with namespaces 上有一个页面