XML::LibXML
以下の例に示すノードを解析することは可能ですか?ノード名の一部としてを指定することで無効なXMLを作成している可能性があることを'*'
認識しており、無効な理由を誰かが説明していただければ幸いです。
use strict;
use warnings;
use XML::LibXML;
my $doc = XML::LibXML->createDocument;
my $quirky = XML::LibXML::Element->new( 'YAK*' );
$quirky->appendText( 'Important Data' );
$doc->setDocumentElement( $quirky );
print $doc->toString; # <?xml version="1.0"?>
# <YAK*>Important Data</YAK*>
my $data = XML::LibXML
->new
->parse_string( $doc->toString );
出力:
<?xml version="1.0"?>
<YAK*>Important Data</YAK*>
:2: parser error : error parsing attribute name
<YAK*>Important Data</YAK*>
^
:2: parser error : attributes construct error
<YAK*>Important Data</YAK*>
^
:2: parser error : Couldn't find end of Start Tag YAK line 2
<YAK*>Important Data</YAK*>
^
:2: parser error : Extra content at the end of the document
<YAK*>Important Data</YAK*>
^