【发布时间】:2016-02-14 16:29:33
【问题描述】:
我需要在需要不区分大小写的 XML 文件中查找节点。以下代码有效,但前提是没有元素为小写:
my $dom = XML::LibXML->new->parse_fh(*DATA);
my $xpc = XML::LibXML->XPathContext->new( $dom->documentElement );
my @invoices = $xpc->findnodes( "/ALLINVOICES/INVOICES/INVOICE" );
__DATA__
<ALLINVOICES>
<INVOICES>
<INVOICE number="12345">
<CUSTOMER>Mr Fubar</CUSTOMER>
</INVOICE>
</INVOICES>
</ALLINVOICES>
如何修复它以使其也接受<allinvoices><invoices><invoice>?
【问题讨论】:
-
作为变体
/*[translate(name(),'alinvoice','ALINVOICES')='ALLINVOICES']... -
解决方案是否必须支持混合大小写?如果没有,请使用
(/ALLINVOICES/INVOICES/INVOICE|/allinvoices/invoices/invoice)作为 XPath 表达式。
标签: xml perl xpath xml-libxml