将字符串加载到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
首先,这是一段令人讨厌的代码:
ASCIIEncoding.UTF8
请只使用Encoding.UTF8
-它是UTF-8,而不是ASCII。
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);
}