xml中的非法字符处理

来源:互联网 发布:eve辅助软件 编辑:程序博客网 时间:2024/04/29 02:43

 

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) &        &            &
单引号  ’           '           '
双引号  ”          "            "
大于号  >         >                >
小于号  <         &lt;                 &#60;
我们只需要对这个五个字符,进行相应的替换就可以了
因此,在运用XML时,我们可以运用正则表达式进行验证替换:[<>&'/"//x00-//x08//x0b-//x0c//x0e-//x1f]。
即:response = Regex.Replace(response, @"[/x00-/x08/x0b-/x0c/x0e-/x1f]", "");

 

原创粉丝点击