我正在寻找最简单的方法来使用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;