zoukankan      html  css  js  c++  java
  • xml中的非法字符

    今使用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

    static final Pattern p3 = Pattern
    .compile("[\x00-\x08\x0b-\x0c\x0e-\x1f]");

    第二类字符:
    对于第二类字符一共有5个,如下:
    字符 HTML字符 字符编码
    和(and) & & &
    单引号 ’ ' '
    双引号 ” " "
    大于号 > > >
    小于号 < &lt; &#60;
    我们只需要对这个五个字符,进行相应的替换就可以了

    解决方法:

    用正则表达式替换,

    用正则表达式表示如下:[<>&'"\x00-\x08\x0b-\x0c\x0e-\x1f]

    http://fishyu0817.iteye.com/blog/612303

  • 相关阅读:
    迭代器和生成器
    装饰器进阶
    闭包和装饰器
    函数的嵌套
    函数的参数
    什么是粘包现象
    模拟ssh远程命令执行
    客户端与服务端代码bug修复和加入循环
    用socket实现简单的套接字通讯
    网络编程之客户端和服务端,
  • 原文地址:https://www.cnblogs.com/nulisaonian/p/6134035.html
Copyright © 2011-2022 走看看