您的位置:首页 > 产品设计 > UI/UE

XML hexadecimal value 0x__, is an invalid character

2016-01-18 14:09 459 查看
XML操作时异常:(十六进制值 0x__) 是无效的字符。

方法一:

设置 CheckCharacters=false。

XmlReaderSettings xmlReaderSettings = new XmlReaderSettings { CheckCharacters = false };


方法二:

如果在第三方类库中,无法设置CheckCharacters ,那么只能移除无效的字符。 google下都是使用正则来移除,其实应该使用高效的位图算法。

//[\x00-\x08\x0B\x0C\x0E-\x1F\x26]
for (int i = 0x00; i <= 0x08; i++)
{
XMLInvalidCharMap[i] = true;
}
XMLInvalidCharMap[0x0b] = true;
XMLInvalidCharMap[0x0c] = true;
for (int i = 0x0e; i <= 0x1f; i++)
{
XMLInvalidCharMap[i] = true;
}
//XMLInvalidCharMap[0x26] = true; //&符号,不应该被过滤

http://stackoverflow.com/questions/21053138/c-sharp-hexadecimal-value-0x12-is-an-invalid-character https://seattlesoftware.wordpress.com/2008/09/11/hexadecimal-value-0-is-an-invalid-character/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: