use Test; BEGIN { plan tests => 9 } use XML::XPath; ok(1); my $xp = XML::XPath->new(ioref => *DATA); ok($xp); my @nodes; # Don't set namespace prefixes - uses element context namespaces @nodes = $xp->findnodes('//foo:foo'); # should find foobar.com foos ok(@nodes, 3); @nodes = $xp->findnodes('//goo:foo'); # should find no foos ok(@nodes, 0); @nodes = $xp->findnodes('//foo'); # should find default NS foos ok(@nodes, 2); # Set namespace mappings. $xp->set_namespace("foo" => "flubber.example.com"); $xp->set_namespace("goo" => "foobar.example.com"); # warn "TEST 6\n"; @nodes = $xp->findnodes('//foo:foo'); # should find flubber.com foos # warn "found: ", scalar @nodes, "\n"; ok(@nodes, 2); @nodes = $xp->findnodes('//goo:foo'); # should find foobar.com foos ok(@nodes, 3); @nodes = $xp->findnodes('//foo'); # should find default NS foos ok(@nodes, 2); ok($xp->findvalue('//attr:node/@attr:findme'), 'someval'); __DATA__