-1

データを XML 形式で保存するログ ファイルがあります。このデータを読みたいのですが、問題は、ログ ファイルが適切に構造化された XML ファイルではないことです。次のような追加のデータが含まれています。

03/22/2013 : 13:23:32 <?xml version="1.0" encoding="UTF-8"?>
<element1>
...
...
...
</element1>

お気づきのように、2013 年 3 月 22 日: 13:23:32 ではデータの読み取りが許可されず、「ルート レベルのデータが無効です」という例外がスローされます。

次のメソッドを使用して XML を読み取ります

 XmlDocument doc = new XmlDocument();
            doc.Load("file.log");
            string xmlcontents = doc.InnerXml;
            label1.Text = xmlcontents;

これは私にとってまれなケースであるため、解決策を教えてください。解決策をグーグルで試しましたが、成功しませんでした ありがとう

4

4 に答える 4

1

簡単なハックは、ログ ファイルを解析して、ルート xml タグの間にあるテキストのみを抽出することです。この場合、< element1> と < /element1> の間にあるものです。

< ?xml というタグを検索できます。?> の後に続くのはルート タグであり、それを使用します。ログ ファイルが明確に構造化されていると予測できるかどうかに応じて、これを実行するためのより良い方法を策定できますが、他に何も機能しない場合は、この方法を試すことができます。

于 2013-09-20T08:51:28.433 に答える
0

おそらく、ファイル全体を行の配列 ( System.IO.File.ReadAllLines(string path)) に読み込んでから、最初の行と XML 構造の断片ではない残りの行をスキップして配列の要素を結合する必要があります (サンプルが入力ファイルの一部にすぎないと仮定します)。

于 2013-09-20T08:59:39.073 に答える