我正在使用Mark Riehl撰写的书XML and Perl,其中一个最初的介绍性程序正在使用XML::Simple
,我使用CPAN将其下载到Fedora。
我继续收到此错误
not well-formed (invalid token) at line 1
我在XML文档中使用了一段时间,然后加载了另一个XML文件并得到了同样的错误。
这个模块有问题吗?
[FEDORA_CASPER@new-host-3 xmlandperl]$ cat page39convert_xml_to_html_simple
#!/usr/bin/perl
use strict ;
use warnings ;
use XML::Simple ;
my $simple = XML::Simple ->new();
my $struct = $simple->XMLin("./symbolconfig.xml") ;
[FEDORA_CASPER@new-host-3 xmlandperl]$ ./page39convert_xml_to_html_simple
not well-formed (invalid token) at line 1, column 5, byte 5 at /usr/lib/perl5/vendor_perl/XML/Parser.pm line 187.
[FEDORA_CASPER@new-host-3 xmlandperl]$
答案 0 :(得分:1)
按设计 - 无效的XML应该是致命的。处理XML应该在遇到错误时中止。
发生这种情况时,解析XML的大多数模块都会die
。您可以使用eval
块来捕获此信息,但您无法做到的是推送'解析XML,因为XML规范说没有。
你真正应该做的是反馈给那些给你XML的人,并用卷起的文档副本点击它们。
http://www.w3.org/TR/REC-xml/#dt-fatal
这里有一个XML验证器: http://www.w3schools.com/xml/xml_validator.asp
此页面也会重复:
W3C XML规范规定,如果发现错误,程序应停止处理XML文档。
但是,如果没有XML示例,我只能重复您的错误说明:
not well-formed (invalid token) at line 1, column 5, byte 5