Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: XML::LibXML's findnodes is beahving weirdly

by Cody Pendant (Prior)
on May 16, 2008 at 08:33 UTC ( #686873=note: print w/ replies, xml ) Need Help??


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

You have a default, unnamed namespace. This is a big annoyance in XML/XSL and may be causing your problem. All nodes without a namespace are in the Atom namespace, but its name is blank.

I know how to get around it using XSL, but not with the module.

In XSL, you need to make up your own namespace and call it as an attribute of the stylesheet, like xmlns:whatever="http://www.w3.org/2005/Atom". As long as it matches the URL in the input, all your content is in the "whatever" namespace if another namespace isn't specified.

But like I say, that may not be the problem.



Nobody says perl looks like line-noise any more
kids today don't know what line-noise IS ...


Comment on Re: XML::LibXML's findnodes is beahving weirdly
Download Code
Re^2: XML::LibXML's findnodes is beahving weirdly
by un-chomp (Scribe) on May 16, 2008 at 11:39 UTC
    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>

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://686873]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (2)
As of 2014-09-22 01:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (176 votes), past polls