XDocument解析忽略中文字符

本文关键字:中文 字符 XDocument | 更新日期: 2023-09-27 18:11:37

我有一个XML字符串,其中包含一些中文字符,如�菅࿼Ჽ탽᫴。因此,当使用XDocument.Parse解析它时,它会抛出以下异常:

System.Xml.XmlException: '', hexadecimal value 0x01, is an invalid character

我尝试将xml字符串转换为UTF-8。但还是同样的问题。

任何想法?

更新:

XML中包含许多元素,但是在使用下面的答案时,它忽略了所有其他元素,而只是转换具有特殊字符的元素,是否可以用XDocument代替XElement ?

XDocument解析忽略中文字符

使用XmlReader和XmlReaderSettings。CheckCharacters设置为false将解决您的问题。

这是我用来加载我的日文xml文件的。

string xmlText = "your xml data";
XElement node;
XmlReaderSettings xrs = new XmlReaderSettings();
xrs.CheckCharacters = false;
using (XmlReader rd = XmlReader.Create(new StringReader(xmlText), xrs))
{
    node = XElement.Load(rd);
}