在XML文件中搜索缺少的结束标记

时间:2013-07-23 18:50:56

标签: xml

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

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

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

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

请帮助我。

2 个答案:

答案 0 :(得分:1)

使用SimpleXML等库,例如脚本语言并尝试解析文件。运气不错(给定文件大小),库会在丢失的标签上出错,并给出一条错误消息,指出问题所在。

例如,在PHP中:

try {
   simplexml_load_file ($your_file);
}
catch (Exception $e) {
    echo $e;
}

答案 1 :(得分:1)

您是否尝试过使用xmllint --valid --stream myfile.xml

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