目前我正在加载xml并且我收到错误:
System.Xml.XmlException:'', 十六进制值0x17,无效 字符。第2762行,第16位。
很容易修复。只需打开xml并删除该字符。
但我需要知道即使使用无效字符也可以加载xml并将其用于解析。 并且有任何缺点吗?
xml示例:
<?xml version="1.0" encoding="UTF-8"?>
<all>
<sub>
<summary>this is summary and it might have some invalid chars</summary>
</sub>
<sub>
<summary>this one is ok</summary>
</sub>
</all>
答案 0 :(得分:4)
包含无效字符的Xml不是xml。 可能可能是一个孤立的故障,或者它可能是整个文件中存在严重数据损坏的预兆 - 一些表现为无效字符(打破标准读取器),一些无声地损坏您的数据而没有你注意到了。
我会把整件事视为可疑(即拒绝它),并将其修复为源头。
答案 1 :(得分:0)
不确定它在c#中究竟是如何工作的,但是如果你能够从一个'字符串'而不是文件中解析一个xml,你可以先将文件加载到一个'字符串'中自己过滤掉字符串,然后发送它关闭xml解析。
编辑:
也许'字符串'是一个糟糕的选择,因为损坏的数据可能在其中有一个NULL,一个字节数组或一些其他通用的内存流结构?