http://qs321.pair.com?node_id=686898


in reply to Re: XML::LibXML's findnodes is beahving weirdly
in thread XML::LibXML's findnodes is beahving weirdly

You can use XML::LibXML::XPathContext to register the namespace as follows:
use strict; use warnings; use XML::LibXML; use XML::LibXML::XPathContext; # load the XML doc my $p = XML::LibXML->new; my $xml_file = do { local $/; <DATA> }; my $dom = $p->parse_string( $xml_file ); # register the namespace my $xc = XML::LibXML::XPathContext->new( $dom ); $xc->registerNs('ns', 'http://www.w3.org/2005/Atom'); # select using XPath my @nodes = $xc->findnodes( '/ns:feed/ns:entry'); print $_->toString for @nodes; __DATA__ <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:os="http://a9.com/-/sp +ec/opensearch/1.1/"> <os:totalResults>233</os:totalResults> <os:startIndex>1</os:startIndex> <os:itemsPerPage>233</os:itemsPerPage> <os:Query role="request" searchTerms="test" startPage=""/> <entry> <id>34</id> <channel>1</channel> <title>Decision making: Marmite</title> + <description>A meeting of the 'business group', which is the committ +ee set up to steer the development of the new Squeezy Marmite bottle. + They discuss the qualities of the new bottle and agree to test i t with consumers.</description> <author></author> <size>36145156</size> <date>2007-09-07</date> <uri>assets/asset10000/aaiiaaaaaaafnknn.mpg</uri> <keylearningstage></keylearningstage> <keywords></keywords> <source>C4L Secondary Service</source> </entry> </feed>