我有一个包含以下内容的example.xml文件:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
<Worksheet ss:Name="Master Sheet">
</Worksheet>
</Workbook>
我有以下Perl代码来解析该文件:
use strict;
use warnings 'all';
use XML::LibXML;
my $filename = 'example.xml';
my $dom = XML::LibXML->load_xml(location => $filename);
my $xpc = XML::LibXML::XPathContext->new($dom);
$xpc->registerNs('ss', 'urn:schemas-microsoft-com:office:spreadsheet');
my $match1 = $xpc->findnodes('//Worksheet/ss:Name');
print "XPath $match1\n";
我已经尝试了很多变体的参数来提取字符串&#34; Master Sheet&#34;,但无济于事。有人可以建议吗?
答案 0 :(得分:2)
默认名称空间与ss
完全相同,因此可以使用
$xpc->findnodes('/ss:Worksheet/@ss:Name')