diotalevi has asked for the wisdom of the Perl Monks concerning the following question:
I am trying to perform a normal query into an XML document where something has been declared about the default namespace. If the xmlns="..." part of the data is removed then this test succeeds. What needs to change in my XPath query //lastName or XML::LibXML parser object so that this query will succeed?
use Test::More tests => 2; use XML::LibXML (); { my $xml = <<'XML'; <?xml version="1.0" standalone="yes"?> <sdnList> <sdnEntry> <lastName>Hello world!</lastName> </sdnEntry> </sdnList> XML my $parser = XML::LibXML->new; my $doc = $parser->parse_string($xml); my $result = $doc->findvalue('//lastName'); is( $result, "Hello world!", "No namespace" ); } { my $xml = <<'XML'; <?xml version="1.0" standalone="yes"?> <sdnList xmlns="http://tempuri.org/sdnList.xsd"> <sdnEntry> <lastName>Hello world!</lastName> </sdnEntry> </sdnList> XML my $parser = XML::LibXML->new; my $doc = $parser->parse_string($xml); my $result = $doc->findvalue('//lastName'); is( $result, "Hello world!", "Namespace" ); }
Results
1..2 ok 1 - No namespace not ok 2 - Namespace # Failed test 'Namespace' # in sdl2.pl at line 30. # got: '' # expected: 'Hello world!' # Looks like you failed 1 test of 2.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Namespaced XML::LibXML XPath query
by diotalevi (Canon) on Feb 15, 2006 at 22:09 UTC | |
by Aristotle (Chancellor) on Feb 20, 2006 at 00:53 UTC | |
by jbfamilly (Initiate) on Oct 23, 2008 at 10:42 UTC | |
by grantm (Parson) on Oct 24, 2008 at 00:52 UTC | |
by jbfamilly (Initiate) on Oct 24, 2008 at 03:42 UTC | |
by acid06 (Friar) on Feb 16, 2006 at 14:33 UTC | |
by diotalevi (Canon) on Feb 16, 2006 at 15:00 UTC | |
|
Re: Namespaced XML::LibXML XPath query
by lestrrat (Deacon) on Feb 16, 2006 at 12:19 UTC | |
by chovy (Initiate) on Sep 17, 2008 at 22:43 UTC | |
by lestrrat (Deacon) on Nov 04, 2008 at 01:30 UTC |