我需要错误日志:我正在对xml文件进行标记验证和DTD验证。
XML:
<?xml version="1.0"?>
<purchaseOrder orderDate="1999-10-20">
<shipTo country="US">
<name>Alice Smith</name>
<street>123 Maple Street</street>
<city>Mill Valley</city>
<state>CA</state>
<zip>90952</zip>
</shipTo>
<billTo country="US">
<name>Robert Smith</name>
<street>8 Oak Avenue</street>
<city>Old Town</city>
<state>PA</state>
<zip>95819</zip>
</billTo>
<comment>Hurry, my lawn is going wild<!/comment>
<items>
<item partNum="872-AA">
<productName>Lawnmower</productName>
<quantity>1</quantity>
<USPrice>148.95</USPrice>
<comment>Confirm this is electric</comment>
</item>
<item partNum="926-AA">
<productName>Baby Monitor</productName>
<quantity>1</quantity>
<USPrice>39.98</USPrice>
<shipDate>1999-05-21</shipDate>
</item>
</items>
</purchaseOrder>
脚本:
use XML::LibXML;
my $parser = XML::LibXML->new;
$parser->validation(1);
$parser->parse_file("purchase.xml");
我得到了不正确的日志,我需要
error.log中: purchase.xml:行号:列号:错误文本
答案 0 :(得分:0)
您未能提供“不正确的日志”的输出。
使用Try::Tiny来捕获验证错误并将其解析为您首选的格式。
use XML::LibXML;
use Try::Tiny;
my $parser = XML::LibXML->new;
$parser->validation(1);
try {
$parser->parse_file("purchase.xml");
} catch {
warn "XML parsing found errors: $_";
parse_xml_error($_);
};
sub parse_xml_error {
my $errors = shift;
# ... left as en exercise for the reader
}