加载xml没有无效的字符错误

时间:2010-03-12 06:04:24

标签: c#

目前我正在加载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>

2 个答案:

答案 0 :(得分:4)

包含无效字符的Xml不是xml。 可能可能是一个孤立的故障,或者它可能是整个文件中存在严重数据损坏的预兆 - 一些表现为无效字符(打破标准读取器),一些无声地损坏您的数据而没有你注意到了。

我会把整件事视为可疑(即拒绝它),并将其修复为源头。

答案 1 :(得分:0)

不确定它在c#中究竟是如何工作的,但是如果你能够从一个'字符串'而不是文件中解析一个xml,你可以先将文件加载到一个'字符串'中自己过滤掉字符串,然后发送它关闭xml解析。

编辑:

也许'字符串'是一个糟糕的选择,因为损坏的数据可能在其中有一个NULL,一个字节数组或一些其他通用的内存流结构?