将字符串加载到XML数据中

本文关键字:数据 XML 字符串 加载 | 更新日期: 2023-09-27 18:08:16

我正在开发一个应用程序,我正在读取一个文件,将内容转换为字符串,然后在XML中加载字符串。但是我面临的问题是,在将字符串数据加载到XML中时,我得到了无效字符的异常。我正在使用下面的代码。有人能帮我解决这个问题吗?提前谢谢你。

ZipFileEntry objContactXML;
String xmlData = ASCIIEncoding.UTF8.GetString(objContactXML.FileData);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlData);

问候,Sanchaita

将字符串加载到XML数据中

首先,这是一段令人讨厌的代码:

ASCIIEncoding.UTF8

请只使用Encoding.UTF8 -它是UTF-8,而不是ASCII。

现在,您可以在XML文本数据周围创建StringReader -但实际上最好不要将其转换为字符串数据。它可以用UTF-8以外的编码——XML解析器知道如何处理这种情况。这完全有可能是你目前的方法遇到问题的原因。将数据保留为二进制并解析:
using (MemoryStream stream = new MemoryStream(objContactXML.FileData))
{
    document.Load(stream);
}
作为题外话,如果你正在使用。net 3.5或更高版本,我强烈建议你使用LINQ to XML (XDocument等)而不是旧的DOM API。LINQ to XML是一个更好的API。

在LINQ to XML中,可以使用:

XDocument document;
using (MemoryStream stream = new MemoryStream(objContactXML.FileData))
{
    document = XDocument.Load(stream);
}