您正在尝试查找类型的元素
web-interface-classifier
和
classifier
从
parent/child1/granchild2/v1
命名空间,但您要求查找类型为的元素
web界面分类器
和
分类器
来自空命名空间。固定的:
#!/usr/bin/env perl
use strict;
use warnings;
use v5.10;
use Data::Dumper;
use XML::LibXML;
use XML::LibXML::XPathContext;
my $dom = XML::LibXML->load_xml( IO => \*DATA );
my $xpc = XML::LibXML::XPathContext->new();
$xpc->registerNs( u => "parent/child1/granchild2/v1" );
for my $node ( $xpc->findnodes( "//u:web-interface-classifier/u:classifier", $dom ) ) {
say $node->toString();
}
__DATA__
<?xml version="1.0" encoding="UTF-8"?>
<web-interface-classifier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:noNamespaceSchemaLocation="WEB-INTERFACE-GROUP-CLASSIFIER.xsd" xmlns="parent/child1/granchild2/v1">
<classifier>
<key1>somevalue</key1>
</classifier>
<classifier>
<key2>somevalue</key2>
</classifier>
</web-interface-classifier>
<classifier>
<key1>somevalue</key1>
</classifier>
<classifier>
<key2>somevalue</key2>
</classifier>