所以我有一些XML:<key>my tag</key><value>my tag value and my invalid Character</Value>
和一个XMLReader:
using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
{
while (reader.Read())
{
//do my thing
}
}
我已经从here实现了CleanInvalidCharacters方法,但是由于尚未对“&#xB”进行编码,因此无法将其删除。
该错误被抛出给reader.Read();。符合异常(exception)情况:
最佳答案
问题是您没有XML-您拥有一些看起来像XML的字符串,但不幸的是,它实际上并不合格。幸运的是,您可以告诉XmlReader
更加宽松:
using (XmlReader reader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings { CheckCharacters = false }))
{
while (reader.Read())
{
//do my thing
}
}
请注意,您仍然会得到XML,该XML在进行序列化时可能会进一步产生问题,因此您可能希望随后在阅读字符时将其过滤掉。
关于c# - 如何停止XMLReader引发无效的XML字符异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26357994/