Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Turning off namespace validation in XML::LibXML...

by biswanath_c (Beadle)
on Oct 28, 2009 at 20:31 UTC ( [id://803790]=perlquestion: print w/replies, xml ) Need Help??

biswanath_c has asked for the wisdom of the Perl Monks concerning the following question:


I am using XML::LibXML to parse XML documents. I am trying to search for a particular XPath in a bunch of XML documents... but I get error while trying to do so stating that a particular namespace is not defined. I would like to turn off the namespace validation and just parse it for an XPath. How do i achive this? (I tried $parser->validation(0). It did not work!

  • Comment on Turning off namespace validation in XML::LibXML...

Replies are listed 'Best First'.
Re: Turning off namespace validation in XML::LibXML...
by ikegami (Patriarch) on Oct 28, 2009 at 21:13 UTC

    XPaths are queries. They don't validate. Your request to help you turn off validation cannot be satisfied.

    And then there's the fact that the concept of defining a namespace makes no sense. Every single uri is already available to use as a namespace. Nothing needs to be defined. This makes your error message suspicious. Please provide the actual error message.

    You'd also do well to provide a minimal example of the problem. It's hard and annoying to fix your error without seeing it.

Re: Turning off namespace validation in XML::LibXML...
by ramrod (Curate) on Oct 29, 2009 at 15:07 UTC
      It did not work!


    Given your problem description, I wouldn't expect it to.
    From the documentation on cpan:
    validate eval { $xmlschema->validate( $doc ); }; This function allows to validate a (parsed) document against the given + XML Schema. The argument of this function should be a XML::LibXML::D +ocument object. If this function succeeds, it will return 0, otherwis +e it will die() and report the errors found. Because of this validate +() should be always evaluated.
    Just in case, here's a link to the W3Schools page on namespace's
    Perhaps all you need is a starter on what namespaces really do.
    Then put something like this in your code (careful of the generic variables):
    #Match Namespace my $rdoc = XML::LibXML::XPathContext->new($doc->documentElement()); $rdoc->registerNs( ns => 'namespace' );
    To reiterate ikegami's comments: If you provide example's of what your working with - either sample code or xml - it will result in better responses to your question.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://803790]
Approved by ikegami
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2024-04-24 17:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found