我正在寻找最简单的方法来使用 Perl 中的 XPath 查询从 XML 结构中快速检索数据。
以下代码结构解释了我想要实现的目标:
my $xml_data = "<foo><elementName>data_to_retrieve</elementName></foo>";
my $xpath_query = "//elementName";
my $result_of_query = ... what goes here? ...
die unless ($result_of_query eq 'data_to_retrieve');
显然 TIMTOWTDI 适用,但最简单的方法是什么?
最佳答案
XML::LibXML 并不容易,但在所有其他方面都优于 XML::XPath。
use XML::LibXML;
my $xml_data = XML::LibXML->load_xml(
string => '<foo><elementName>data_to_retrieve</elementName></foo>'
);
die unless 'data_to_retrieve' eq
$xml_data
->findnodes('//elementName')
->get_node(1)
->textContent;