Re: LibXML misbehaving with default namespace
Petr Pajas <[email protected]>
| Newsgroups | gmane.comp.lang.perl.xml |
|---|---|
| Organization | UFAL MFF UK |
| Message-ID | <[email protected]> |
Dne Thursday 23 October 2008 19:34:31 Emmanuel Rodriguez napsal(a):
> Hi,
>
> I've encountered a strange behavior from XML::LibXML when parsing a
> default namespace. I made a small proof-of-concept script that can
> demonstrate the problem. Sample script:
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
> use XML::LibXML qw(:all);
> use Data::Dumper;
>
> # Which libxml?
> printf "libxml compiled version %s\n", XML::LibXML::LIBXML_VERSION;
> printf "libxml runtime version %s\n", XML::LibXML::LIBXML_RUNTIME_VERSION;
> printf "libxml version %s\n", XML::LibXML::LIBXML_DOTTED_VERSION;
> print "XML::LibXML version $XML::LibXML::VERSION\n";
>
> my $parser = XML::LibXML->new();
> my $document = $parser->parse_string('<html
> xmlns="http://www.w3.org/1999/xhtml"/>');
>
> # Print the namespaces
> my ($namespace) = $document->documentElement->getNamespaces;
> foreach my $namespace ($document->documentElement->getNamespaces) {
> my $uri = $namespace->getNamespaceURI;
> my $prefix = $namespace->getPrefix || 'undef';
> print "$prefix => $uri\n";
> }
>
> The output of this script differers based on the version of
> LibXML/libxml installed. At home I have the following results:
> libxml compiled version 20630
> libxml runtime version 20631
> libxml version 2.6.30
> XML::LibXML version 1.63
> undef => http://www.w3.org/1999/xhtml
>
> And at work I get:
> libxml compiled version 20627
> libxml runtime version 20631
> libxml version 2.6.27
> XML::LibXML version 1.66
> xmlns => http://www.w3.org/2000/xmlns/
>
> Anyone noticed this?
>
> Emmanuel Rodriguez
So you compiled XML::LibXML against one libxml2 and run it against another.
Don't do that!
As for undef/xmlns, that is a bugfix somewhere between 1.63 and 1.66, nothing
interesting there either.
-- Petr
_______________________________________________
Perl-XML mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs