下面的XML代码($xml)需要显示在页面中:
<?xml version="1.0" encoding="UTF-8"?>
<Contact name="test" course="maths">
</Contact>在显示页面中,我得到以下错误:
XML Parsing Error: XML or text declaration not at start of entity而不是显示XML。
我试着删除这条线:
<?xml version="1.0" encoding="UTF-8"?>它的显示是正确的。
我的问题是,我不能总是做上述步骤,因为在未来将有另一种格式。
作为一种永久的解决方案,我想将这个xml封装到CDDATA中,并在perl中试用如下:
$modified_xml = '<![CDATA['.$xml.']]>;它显示的错误如下:
XML Parsing Error: syntax error
<![CDATA[<?xml version="1.0" encoding="UTF-8"?><Contact name="test" course="maths"></Contact>]]>发布于 2015-09-17 14:37:03
<?xml version="1.0" encoding="UTF-8"?>是一个特例-它是XML声明。它必须在它自己的线路上,而且(如果有)它必须是第一行。它不是XML的一部分。
所以不,你不能像这样把它插入到CDATA中。不会有效果的。
您的错误-表明它是“不是在实体的开头”,这通常意味着您有偏离空白行。
例如:
#!/usr/bin/perl
use strict;
use warnings;
use XML::Twig;
my $xml = '
<?xml version="1.0" encoding="UTF-8"?>
<Contact name="test" course="maths">
</Contact>';
XML::Twig -> parse ( $xml );错误有:
XML or text declaration not at start of entity at line 2, column 0, byte 1但是:
my $xml = '<?xml version="1.0" encoding="UTF-8"?>
<Contact name="test" course="maths">
</Contact>';
XML::Twig -> parse ( $xml );不会的。
我可以建议作为您的“修复”-首先获得有效的XML。但第二点:
$xml =~ s/\A\s*//gms;https://stackoverflow.com/questions/32632214
复制相似问题