I'm probably doing something stupid here, but I have the following problem:

I am trying to parse this simple XML:

<?xml version="1.0" encoding="UTF-8"?>
<vxml xmlns="http://www.w3.org/2001/vxml"; 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
 xsi:schemaLocation="http://www.w3.org/2001/vxml
 http://www.w3.org/TR/voicexml20/vxml.xsd"; version="2.0"
>
  <meta name="author" content="Toby Corkindale"/>
</vxml>

I am using XML::LibXML, like so:
use strict;
use warnings;
use XML::LibXML;

our $parser = new XML::LibXML;
my $filename = 'example.xml';
my $xml = $parser->parse_file($filename)
    or die("parse xml error on $filename\n");

my @nodelist = $xml->findnodes('/vxml/meta');
foreach my $node (@nodelist) {
    my $name = $node->getAttribute('name');
    my $content = $node->getAttribute('content');
    print "META: [$name] = [$content]\n";
}


The problem is that although the XML document parses fine, and i can manually
trawl through child nodes OK, the findnodes() function doesn't work.
It *does* work if I remove the xmlns="...." line from the <vxml>
declaration. (I can leave the schema stuff in there)

Am I doing something wrong here, or is XML::LibXML, or is the VoiceXML
standard?


tia,

Toby

-- 
Turning and turning in the widening gyre
The falcon cannot hear the falconer;
Things fall apart, the centre cannot hold;
Mere anarchy is loosed upon the world.

Reply via email to