3

我有一个大小为 1.2 GB 的 XML 文件。

cat tpl.xml | grep -i "</es:vsDataE1Ttp>" | wc -l
   30844

cat tpl.xml | grep -i "<es:vsDataE1Ttp>" | wc -l
   30845

从上面我们可以看到关闭标签丢失了。我想知道这个标签在 XML 文件中的哪个位置丢失,意味着它没有关闭。即使我能得到行号,我也能解决我原来的问题。

请帮助我。

4

2 回答 2

1

你试过使用xmllint --valid --stream myfile.xml吗?

编辑:--stream在处理非常大的文件时添加。

于 2013-07-23T19:05:35.613 回答
1

使用诸如SimpleXML脚本语言之类的库并尝试解析文件。运气好的话(考虑到文件大小),库会在丢失的标签上出错,并给你一条错误消息,指出问题出在哪里。

例如,在 PHP 中:

try {
   simplexml_load_file ($your_file);
}
catch (Exception $e) {
    echo $e;
}
于 2013-07-23T18:56:39.693 回答