http://www.perlmonks.org?node_id=1024823


in reply to LibXML, XPath and Namespaces

Can I have my bonus points please??

use v5.10; use strict; use warnings; use XML::LibXML; my $xml = XML::LibXML->load_xml(IO => \*DATA); say "The root element's namespace is: ", $xml->documentElement->namespaceURI; # Give that namespace a prefix so that we can reference it in XPath $xml->documentElement->setNamespaceDeclPrefix("", "gt"); say "Look! The new prefix works! Found: ", $xml->findvalue( '//gt:EnvelopeVersion'); __DATA__ <?xml version="1.0"?> <GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope"> <EnvelopeVersion>2.0</EnvelopeVersion> <Header> <MessageDetails> ..... </MessageDetails> </Header> <GovTalkDetails> ..... </GovTalkDetails> <Body> <!-- A valid Body payload with a namespace declaration on the first el +ement --> </Body> </GovTalkMessage>
package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name