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 回答