所以我有一些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方法,但由于“&amp; #xB”尚未编码,因此无法删除。
在reader.Read();除外:
十六进制值0x0B,是无效字符。
答案 0 :(得分:8)
问题是你没有XML - 你有一些确定看起来像XML的字符串,但遗憾的是它并不合格。幸运的是,你可以告诉XmlReader
更宽松:
using (XmlReader reader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings { CheckCharacters = false }))
{
while (reader.Read())
{
//do my thing
}
}
请注意,您仍将使用XML,在序列化时,可能会产生更深层次的问题,因此您可能希望在阅读后随后过滤掉字符。