XML解析文件出错解决方法
2013-02-28 18:29
393 查看
在解析xml时,经常因为文件中含特殊字符而解析失败。原因有两个:一是内容中含有XML预定义好的实体,二是内容中含有低位非打印字符。
1.内容中含有xml预定好的实体,如“<”和“&”,对xml来说是禁止使用的,针对这种字符,解决方式是使用CDATA部件以"<![CDATA[" 标记开始,以"]]>"标记结束,是CDATA内部内容被解析器忽略。具体说明参考《XML CDATA是什么?》。
2.内容中含有低位非打印字符,解析时会报错:""(十六进制值 0x1D)是无效的字符.加载或保存XML时引发的异常.System.ArgumentException: “”(十六进制值 0x1D)是无效的字符。
出错的原因是内容中含有低位非打印字符,处理方法是对其进行过滤,过滤方法为:
return System.Text.RegularExpressions.Regex.Replace(str,@"[\x00-\x08]|[\x0B-\x0C]|[\x0E-\x1F]";
具体说明参考《XML文件出错解决方法!(转)》。
以上两种情况,第一种较为普遍,第二种遇到情况比较少,在面对一些用户输入数据时生成xml,可以对xml结点内容执行上述过滤,以保证xml文件使用者可以正确解析xml文档。
1.内容中含有xml预定好的实体,如“<”和“&”,对xml来说是禁止使用的,针对这种字符,解决方式是使用CDATA部件以"<![CDATA[" 标记开始,以"]]>"标记结束,是CDATA内部内容被解析器忽略。具体说明参考《XML CDATA是什么?》。
2.内容中含有低位非打印字符,解析时会报错:""(十六进制值 0x1D)是无效的字符.加载或保存XML时引发的异常.System.ArgumentException: “”(十六进制值 0x1D)是无效的字符。
出错的原因是内容中含有低位非打印字符,处理方法是对其进行过滤,过滤方法为:
return System.Text.RegularExpressions.Regex.Replace(str,@"[\x00-\x08]|[\x0B-\x0C]|[\x0E-\x1F]";
具体说明参考《XML文件出错解决方法!(转)》。
以上两种情况,第一种较为普遍,第二种遇到情况比较少,在面对一些用户输入数据时生成xml,可以对xml结点内容执行上述过滤,以保证xml文件使用者可以正确解析xml文档。
相关文章推荐
- c#中XML解析文件出错解决方法
- c#中XML解析文件出错解决方法
- c#中XML解析文件出错解决方法
- MyEclipse中提示SpringMVC的XML配置文件出错解决方法
- destoon系统上传文件出错解决方法
- InfoPath 生成的XML文件用XPATH查询出错的问题解决(转)
- Android开发之XML文件的解析的三种方法
- 用 jdom 解析 xml 文件时如何解决中文问题 ? 如何解析 ?
- 通过XML解析,对pandas的DataFrame.append()的思考及对大文件解析加速的方法
- android R.java 文件出错解决方法
- xml中文出错问题解决方法
- 复制文件时explorer.exe出错解决方法
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- C# 导出Word报”无法打开Office open xml文件。因为文件内容有错误“ 解决方法
- jsp返回xml浏览器解析错误问题解决方法
- Hibernate配置文件中没有XML提示的解决方法
- jQuery解析XML文件同时动态增加js文件的方法
- 织梦 dedecms “模板文件不存在,无法解析文档!” 解决方法分享
- Android开发之XML文件的解析的三种方法
- 打开组策略时提示inetres.admx管理模板解析出错解决方法