0

我正在针对给定的 XSD 验证许多 XML 文件。它在命令行中打印一些错误。我需要将错误转换为一个变量。

我正在使用 Perl。我尝试了以下事情,但无法满足我的要求。

$values = system("xmlstarlet val --err --xsd Test.xsd Test1.xml");

返回为 0 或 1

$values = `xmlstarlet val --err --xsd Test.xsd Test1.xml`

错误看起来像这样

test.xml:5340.23:元素“SP”:不需要此元素。

它只打印有效或无效,我也需要上述错误。

我使用了以下命令

**xmlstarlet val --err --xsd Test.xsd Test1.xml** 

让我知道一些想法来解决错误。

4

1 回答 1

1

试试这个代码;

my $error; 
my $values = `xmlstarlet val --err --xsd Test.xsd Test1.xml 2>&1`;

if ($?) {
    $error = $values;
}
于 2014-02-05T07:06:39.870 回答