今使用Jdom生成xml文件的时候,总是出现0x0,0x8为非法字符,经过搜索,问题原因及解决方法如下:
原因:
xml中需要过滤的字符分为两类,一类是不允许出现在xml中的字符,这些字符不在xml的定义范围之内。另一类是xml自身要使用的字符,如果内容中有这些字符则需被替换成别的字符。
第一类字符:
对于第一类字符,我们可以通过W3C的XML文档来查看都有哪些字符不被允许出现在xml文档中。
XML允许的字符范围是“#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]”。因此我们可以把这个范围之外的字符过滤掉。
需要过滤的字符的范围为:
\\x00-\\x08
\\x0b-\\x0c
\\x0e-\\x1f
第二类字符:
对于第二类字符一共有5个,如下:
字符 HTML字符 字符编码
和(and) & & &
单引号 ’
' '
双引号 ” " "
大于号 > > >
小于号 < < <
我们只需要对这个五个字符,进行相应的替换就可以了
解决方法:
用正则表达式替换,
用正则表达式表示如下:[<>&'\"\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]
分享到:
相关推荐
xml中的非法字符问题
严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯。
windows系统中文件名不能包含 \ / : * ?...以上这篇python创建文件时去掉非法字符的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python高效
1.内容中含有xml预定好的实体,如“<”和“&”,对xml来说是禁止使用的,针对这种字符,解决方式是使用CDATA部件以”<![CDATA[” 标记开始,以”]]>”标记结束,是CDATA内部内容被解析器忽略。具体说明参考...
电子病例共享系统中XML文档处理方法的研究,宁晓,杜军平,以一个开发完成的电子病例共享系统为平台,在从XML文档的解析,超大XML文档的生成、XML文档的切割以及XML文档中特殊和非法字符处理等
XML 元素中,"和 "&" 是非法的。"会产生错误,因为解析器会把该字符解释为新元素的开始。"&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。CDATA:在标记CDATA下,所有的标记、实体引用都被忽略,而被XML...
老版本的TinyXML“保留”了字符实体,而在新版本中它们会被转化成字符串。 另外,所有字符都可以用它的Unicode编码数字来指定, " "和" "都表示不可分的空格字符。 打印 TinyXML有几种不同的方式来打印输出,...
非法关键词过滤 包含(txt敏感词文档和使用方法。)
停产.. 随时使用和修改此软件。 但是请注意,我不再主动维护此代码。...和>类的非法字符 关闭未关闭的标签,试图遵守结构规则 修复标签重叠,例如<i> foo <b> bar </i> boo 版权 版权所有2002-2004-RW van't Veer
NULL 博文链接:https://fish-bone.iteye.com/blog/1732229
xml java系统源码 AndroidFAQSolutions(Android开发各类常见错误解决...非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum 原因: Eclipse可以智能的把UTF-8+BOM文件普通的UTF-8文件,Android Studio还没
前提,日志是以日期格式命名的,可以和日期比较大小,其他情况需自行调整 ...sed -i 's/\r//' *.sh 脚本不能执行时,含有非法字符时,可以使用这个命令替换 chmod -R 755 * 授权 tar -zxvf *.tar.gz 解 tar -zcvf 压
3.增加了评论功能,对非法字符、非法网址采用相应的关键字库进行过滤。增加了图形验证码的限制功能。 4.在原有添加文章的基础上,增加了添加程序功能。自定义多个程序地址,由于大部分服务器不能提供下载服务,...
3.增加了评论功能,对非法字符、非法网址采用相应的关键字库进行过滤。增加了图形验证码的限制功能。 4.在原有添加文章的基础上,增加了添加程序功能。自定义多个程序地址,由于大部分服务器不能提供下载服务,...
7.25 去除文件名中的非法字符 第8章 标记语言和数据交换 8.1 查找XML风格的标签 8.2 把标签b替换为strong 8.3 删掉除em和strong之外的所有XML风格标签 8.4 匹配XML名称 8.5 添加p和br标签将纯文本转换为HTML 8.6 在...
7.25 去除文件名中的非法字符 第8章 标记语言和数据交换 8.1 查找XML风格的标签 8.2 把标签b替换为strong 8.3 删掉除em和strong之外的所有XML风格标签 8.4 匹配XML名称 8.5 添加p和br标签将纯文本转换为HTML ...
让你短时间内由一名菜鸟到高手绝对没问题! 由于权限有限,分3部份...实例251 在查询中使用字符串函数 387 实例252 在查询中使用日期函数 388 8.19 having语句应用 390 实例253 利用having语句过滤分组数据 390 ...