Re: Bug (?) in XML::LibXML when creating XML docs with invalid characters
Francisco Obispo <[email protected]> Tue, 9 Apr 2013 10:13:43 -0700
| Newsgroups | gmane.comp.lang.perl.xml |
|---|---|
| Message-ID | <[email protected]> |
Oops,
Pressed "send" without much testing:
$ ./test.pl |xmllint -format -
-:2: parser error : PCDATA invalid Char value 7
<elem></elem>
^
So, "7" UTF-8 is a control character, I don't think you can use control chars in XML at all, however, I guess you can do something like  but I'm not sure about the implications on the parsers.
Francisco
On Apr 9, 2013, at 9:49 AM, Francisco Obispo <[email protected]> wrote:
> Mhm,
>
> Looking at this, more closely now, it seems like appendText is an alias for appendTextNode, so that won't work,
>
> I tested the code in my computer and it doesn't show the problem:
>
> $ ./test.pl
> <?xml version="1.0" encoding="UTF-8"?>
> <elem></elem>
>
>
>
> what version are you using?
>
> I have 1.84 in mine.
>
>
>
>
> On Apr 9, 2013, at 9:02 AM, Francisco Obispo <[email protected]> wrote:
>
>> You should probably use
>>
>> $element->appendTextNode($c);
>>
>>
>>
>>
>> On Apr 9, 2013, at 4:11 AM, aitor <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> the following perl snippet creates an invalid XML using LibXML
>>> functions, which I though was not possible. The idea is to attach a
>>> malformed character via "appendText". I would say that the function
>>> should fail when feeding invalid characters ?
>>>
>>> test.pl
>>> *******
>>>
>>> #!/usr/bin/perl
>>>
>>> use XML::LibXML;
>>>
>>> my $c = pack("W", 07); # the invalid character
>>>
>>> my $odoc = XML::LibXML::Document->new('1.0',"UTF-8");
>>> my $elem = $odoc->createElement("elem");
>>> $odoc->setDocumentElement($elem);
>>> $elem->appendText($c);
>>> print $odoc->toString(1)."\n";
>>>
>>> ******
>>> % perl test.pl > test.xml
>>> % xmllint --noout test.xml
>>> test.xml:2: parser error : PCDATA invalid Char value 7
>>> <elem>lem>
>>> ^
>>>
>>> Any ideas ?
>>>
>>> best,
>>> aitor
>>> _______________________________________________
>>> Perl-XML mailing list
>>> [email protected]
>>> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>>
>> Francisco Obispo
>> Director of Applications and Services - ISC
>> email: [email protected]
>> Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
>> PGP KeyID = B38DB1BE
>>
>> _______________________________________________
>> Perl-XML mailing list
>> [email protected]
>> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>
> Francisco Obispo
> Director of Applications and Services - ISC
> email: [email protected]
> Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
> PGP KeyID = B38DB1BE
>
> _______________________________________________
> Perl-XML mailing list
> [email protected]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Francisco Obispo
Director of Applications and Services - ISC
email: [email protected]
Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
PGP KeyID = B38DB1BE
_______________________________________________
Perl-XML mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs