C#StringBuilder to String在XmlDocument中使用

时间:2014-05-04 10:21:17

标签: c# xml stringbuilder

我必须经历大量非常混乱且不一致的xml文档,其中一些文档具有多个根节点。我想使用XmlDocument。我所做的是使用带有ConformanceLevel.Fragment的XmlReader,我使用ReadOuterXml()将每一行追加到StringBuilder字符串。在查看StringBuilder字符串时,它看起来很好,但是当我使用LoadXml将它添加到XmlDocument时,我必须将其转换为.ToString(),然后将其混乱。

这是

<info version="1.3.1.3-en" />

看起来像这样

<info version="\&quot;1.3.1.3-en\&quot;" />

这是我用来创建XmlDocument

的代码
    public XmlDocument createXDocFromReader(string fi, string parentNode)
    {
        XmlDocument xDoc = new XmlDocument();
        XmlReaderSettings readerSettings = new XmlReaderSettings();
        readerSettings.ConformanceLevel = ConformanceLevel.Fragment;
        StringBuilder xmlString = new StringBuilder();

        xmlString.Append("<" + parentNode + ">");


        using (XmlReader reader = XmlReader.Create(fi, readerSettings))
        {
            while (reader.Read())
            {
                xmlString.Append(reader.ReadOuterXml());
            }
        }

        xmlString.Append("</" + parentNode + ">");

        xDoc.LoadXml(xmlString.ToString());

        return xDoc;
    }

0 个答案:

没有答案