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


in reply to LibXML, XPath and Namespaces

You can retrieve the namespace by the namespaceURI method:
my $doc = XML::LibXML->load_xml(location => '1.xml'); my $root = $doc->documentElement; my $nsuri = $root->namespaceURI;

You have to register the namespace before you can use it. It is annoying, but it is how XML works: if no namespace is specified, it means the empty namespace, not a default one (imagine the main:: package in Perl having no name).

If you find XML::LibXML too verbose (as I do), you might like XML::XSH2 which is a simple wrapper around it which reduces most of the incantations. Nevertheless, you still have to

register-namespace gt http://www.govtalk.gov.uk/CM/envelope ;
.
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^2: LibXML, XPath and Namespaces
by space_monk (Chaplain) on Mar 21, 2013 at 15:46 UTC
    Thanks very much,

    As you say I was really trying to find a way of getting round the verbosity. Unfortunately getting more libraries installed round here is awkward and quite time-consuming so I have to live with LibXML.

    A Monk aims to give answers to those who have none, and to learn from those who know more.