我有一个大小为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文件中缺少这个标记的位置,意味着它没有关闭。即使我能得到行号,我也可以解决原来的问题。
请帮助我。
答案 0 :(得分:1)
使用SimpleXML
等库,例如脚本语言并尝试解析文件。运气不错(给定文件大小),库会在丢失的标签上出错,并给出一条错误消息,指出问题所在。
例如,在PHP中:
try {
simplexml_load_file ($your_file);
}
catch (Exception $e) {
echo $e;
}
答案 1 :(得分:1)
您是否尝试过使用xmllint --valid --stream myfile.xml
?
编辑:在您处理非常大的文件时添加了--stream
。