2011-09-12 5 views
1

ログサブシステムはxmlファイルにログを書き込みます。間違ったデータからxml文書をクリーニングします

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<log version="1.0">  
<message time="2011-04-11 17:10:10.0020" class="info"> 
la la la la.. 
</message> 

ログインファイルの書き込みがクラッシュする可能性があります。結果のXMLログファイルは、間違ったxmlデータ列例えば

<message ti 

は、正規表現を使用する以外、誤ったデータ部分からxmlファイルをクリアするのに便利な方法を存在ですが含まれていてもよいですか?

upd:最終的にファイルの途中で間違ったデータ部分が発生する可能性があります。

+0

「許容」パーサーを探します。 XMLUnitプロジェクトには、たとえば、このような機能があります。 – Wivani

答えて

3

これは、ロギング形式としてXMLを使用しない大きな理由です。クラッシュしなくても、ログはではありません正式なXMLです。ルートタグを決して閉じることはないためです。

どうすればクリーニングできますか?切り詰められたファイルのみを取得した場合は、ファイルを読み込み、最後に"</message>"を探し、そこを切り捨て、"</log>"を追加して解析します。

+0

はい私はよく整形されたxmlを閉じタグなしで使用しています。 – void

+0

XMLログの途中で間違ったメッセージ(壊れたメッセージ)が発生することがあります。 – void

+0

なぜXMLファイルなのですか? –

関連する問題