我正在针对给定的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**
让我知道一些想法来解决错误。
答案 0 :(得分:1)
试试这段代码;
my $error;
my $values = `xmlstarlet val --err --xsd Test.xsd Test1.xml 2>&1`;
if ($?) {
$error = $values;
}