2010-06-16 62 views
0

如果我使用的XML ::的libxml解析器多次拨打如下所示的行...Perl的XML ::的libxml分析器错误

$tree = $parser->parse_file($WBCall); 

...其中$ WBCall表示HTTP字符串到服务以XML格式返回数据,然后偶尔我收到如下错误:“:1:解析器错误:预计开始标记,'<'找不到'

这种情况很少出现,当代码拉动数百XML数据文件。这是否意味着我需要添加一些XML验证?如果是这样,那么最好的Perl模块是什么?

+3

你是什么意思?如果它不解析,那么你已经验证它是无效的。如果您想捕获错误,请使用eval:my $ document = eval {$ parser-> parse_file($ WBCall)}或警告“错误:$ @” – runrig 2010-06-16 14:54:48

回答

1

这听起来像你偶尔会得到一个空身体的响应,或者可能是某种“服务器繁忙”响应。

当你说“$ WBCall表示一个HTTP字符串到服务,该服务返回XML格式的数据”你的意思是它包含一个URI?如果是这样,也许你可以使用LWP自己发出HTTP请求,然后调用$parser->parse_string($response->content)。如果发生错误(用eval捕捉它),您可以登录$response->as_string