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

SimpleXMLスクリプト言語などのライブラリを使用して、ファイルの解析を試みます。少し運が良ければ (ファイルサイズが与えられた場合)、ライブラリは欠落しているタグでエラーになり、問題の場所を示すエラー メッセージが表示されます。

たとえば、PHP では次のようになります。

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

使ってみましたxmllint --valid --stream myfile.xmlか?

編集:--stream非常に大きなファイルを扱っているため追加されました。

于 2013-07-23T19:05:35.613 に答える