I don't understand why you don't get same namespace every time
Anyway, If the XML are small and you need access to just a few nodes you could you XML::Simple, for example:
use XML::Simple; use strict; use warnings; my $xml = <<XML; <?xml version="1.0" standalone="yes"?> <sdnList> <sdnEntry> <lastName>Hello world !</lastName> </sdnEntry> </sdnList > XML my $xml1 = XMLin($xml);2 my $result = $xml1->{sdnEntry}->{lastName}; print "result:$result\n"; ; $xml = <<XML; <?xml version="1.0" standalone="yes"?> <sdnList xmlns="http://tempuri.org/sdnList.xsd" > <sdnEntry> <lastName>Hello world !</lastName> </sdnEntry> </sdnList > XML my $xml2 = XMLin($xml); $result = $xml1->{sdnEntry}->{lastName}; print "result:$result\n";
I've had performance problems using xpath queries, even it was faster to instantiate the document and consumed less memory than XML::Simple, overall it was slower accessing nodes ( which makes totally sense as XML::Simple returns a hash ).
My point is if you need a simple parser ( i.e: for config files or for consuming small services once a while ) I'd stick to XML::Simple. In environments of high volume or frequent parsing of huge XML documents I would use Expat instead it is really fast.
In reply to Re: how to get XML::LibXML perfect xpath query ?
by bluescreen
in thread how to get XML::LibXML perfect xpath query ?
by Kanishka.black0
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |