好的,这是一个非常初级的问题,但我是 Perl 的新手,老实说,我似乎无法在任何地方找到答案,即使我确信它会非常简单。
假设我有以下 XML 模式:
<root>
<parentNode status="Good">
<A>
<B>
<value><![CDATA[This is my value]]</value>
</B>
</A>
</parentNode>
</root>
假设将有多个具有不同状态的父节点。
我正在尝试编写一个脚本,该脚本将为我提供状态不是“好”的父节点的每个值节点的内容
使用以下代码,我已经能够成功获得正确的父节点:
my $parser = XML::LibXML->new();
my $tree = $parser->parse_file($xml_file);
my $root = $tree->getDocumentElement;
my @records = $root->findnodes("//parentNode");
foreach my $node (@records) {
my $resultAtt = $node->getAttribute('status');
next if $resultAtt ne "Good";
但是当我尝试时:
my $val = $node->findvalue("value");
我什么都得不到。
此外,我真的只对“这是我的价值”部分感兴趣。当您读取该值时,CDATA 是否会影响它?