0

一連の疑似 xml ファイルがあります。つまり、それらはほとんど XML ファイルですが、xml 宣言とルート ノードが欠落しています。たとえば、概念的には次のようになります。

<a>info</a>
<b>info2</b>

私がやりたいのは、それをXmlDocumentオブジェクトにロードすることです。たとえば、次のようなものです。

    XmlDocument xml = new XmlDocument();

    using (StreamReader file = new StreamReader(File.Open(@"file.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
    {
        xml.Load(file);
    }

おそらく不正な形式の疑似 xml ファイルが原因で、これはエラーをスローしています。ルート ノードがLoad. 実際のファイルを変更したくない、またはディスクに何かを保存する必要がない (たとえば、新しい一時ファイル)。私はこれで立ち往生しています、何か提案はありますか?

4

2 に答える 2

2

XmlDocument には、Xml 文字列を解析するLoadXml() メソッドもあります。ファイルの内容を文字列にロードし、宣言を追加して、LoadXml() を呼び出すことができます。もちろん、長いファイルを使用している場合、これは非常にメモリを消費する可能性があるため、注意してください。

于 2012-06-20T17:32:53.580 に答える
1

あなたはこれを試すことができます

var xmlString = file.ReadToEnd();
xmlString = "<root>" + xmlString + "</root>";
xml.LoadXml(xmlString);

于 2012-06-20T17:42:38.297 に答える