`
fishyu0817
  • 浏览: 110902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

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

解决方法:

用正则表达式替换,

用正则表达式表示如下:[<>&'\"\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]
分享到:
评论
1 楼 0c0c0f 2014-11-15  
原来如此
str.replaceAll("[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "")

相关推荐

    xml中的非法字符问题

    xml中的非法字符问题

    禁止输入非法字符

    非法字符通常指的是那些在特定上下文中不应出现的字符,比如在SQL查询中,单引号(')和分号(;)可能被用来构造SQL注入攻击;在文件路径中,某些字符如*、?、/、\可能引起解析错误或导致意外的操作。描述中提到的"/"、...

    监听器访问计数过滤非法字符

    本文将详细讲解如何利用监听器进行访问计数以及通过过滤器来过滤非法字符,以确保系统的安全性和用户体验。 首先,我们来看监听器。在Java的Servlet规范中,监听器是一种特殊的Servlet组件,它能够监听特定的事件并...

    过滤器过滤用户输入的非法字符

    本文将深入探讨标题中的两个关键类:`XssFilter.java` 和 `XssHttpServletRequestWrapper.java`,以及它们在过滤非法字符中的作用。 首先,`XssFilter.java` 是一个实现了Servlet过滤器接口(javax.servlet.Filter...

    Ant编译utf-8非法字符:\\65279

    描述中提到的“NULL”可能是作者在原始博客中没有提供具体细节,但我们可以推测,这个问题可能是因为源代码文件使用了UTF-8编码,而Ant默认使用的是GBK或者其他非UTF-8的编码格式,当Ant尝试读取或编译这些文件时,...

    XML 非法字符(转义字符)

    本文将深入探讨XML中的非法字符以及如何通过转义字符来解决这一问题。 在XML文档中,有两个字符是严格禁止出现的,它们分别是小于号 "和和号 "&"。这是因为这两个字符在XML语法中具有特殊含义,"用于开始一个元素...

    C#中文件名或文件路径非法字符判断方法

    2. **非法字符判断**:接下来,使用`Path.GetInvalidFileNameChars`方法获取所有非法字符的数组,然后使用`IndexOfAny`方法检查输入的字符串中是否包含这些非法字符。如果`IndexOfAny`返回值大于等于0,说明字符串中...

    C#实现简单过滤非法字符实例

    在C#编程中,有时我们需要处理用户输入或者从外部数据源获取的数据,这些数据可能包含非法字符,如SQL注入攻击常用的特殊字符。为了确保数据安全和应用的正常运行,我们需要过滤掉这些非法字符。本篇文章将详细介绍...

    C# XML字符串包含特殊字符的处理转换方法小结

    在C#中,处理XML字符串时,由于XML的语法规则,某些特殊字符不能直接出现在XML文档中,否则会导致解析错误。这些特殊字符包括小于号 `、大于号 `&gt;`、和与号 `&`。此外,对于XML属性值,单引号 `'` 和双引号 `"` 也...

    解析xml解析xml解析xml解析xml解析xml

    1. 错误处理:确保正确处理无效的XML,如遗漏的结束标签、非法字符等。 2. 安全性:避免XML注入攻击,对用户输入进行适当验证和转义。 3. 性能优化:根据文件大小选择合适的解析策略,大文件推荐使用SAX或StAX。 ...

    java xml-repair修复工具类

    然而,XML文档在生成或传输过程中可能会因为各种原因导致格式不规范,如缺失结束标签、非法字符等,这时就需要XML-repair工具类进行修复。 首先,让我们深入了解XML的规范和常见问题。XML文档必须遵循一定的语法...

    python创建文件时去掉非法字符的方法

    windows系统中文件名不能包含 \ / : * ?...以上这篇python创建文件时去掉非法字符的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python高效

    XML 中文参考手册(chm)

    8. **错误处理**:在处理XML文档时可能会遇到错误,如语法错误或非法字符。DOM提供了一套错误处理机制,帮助开发者捕获和处理这些问题。 9. **示例代码**:手册通常会包含大量示例代码,展示如何使用DOM API进行...

    xmltools_2.3.1_r805_unicode_beta2.zip

    它能够实时检测并提示用户在编写XML文档时可能存在的语法错误,如未闭合的标签、非法字符或不符合XML规范的结构。这有助于确保XML文档的结构正确无误,避免因格式问题导致的数据解析错误。 其次,XML Schema(XSD)...

    XML-Parser-2.4.4 官方源码

    5. **错误处理**:解析过程中可能出现各种错误,如语法错误、非法字符、未关闭的元素等。理解XML-Parser-2.4.4如何捕获和报告这些错误是调试和保证代码健壮性的重要环节。 6. **编码处理**:XML支持多种字符编码,...

    XML_试题推荐

    "的XML语句是使用CDATA,因为"在XML中是非法的。所以选项B是正确的:`&lt;![CDATA[if a&lt;c then c=a+b;]]&gt;`。 5. **名字空间声明**: - 名字空间声明的直接定义格式是:`xmlns:&lt;名字空间前缀&gt;=”&lt;名字空间名&gt;”`,...

    SQL Server查询中的特殊字符处理(C#代码)

    在IT领域,尤其是在数据库操作与编程中,对特殊字符的处理是至关重要的。特殊字符,如方括号、单引号、百分号、下划线和脱字号等,在SQL语句中有特定的意义,若不正确处理,可能会导致SQL语法错误或注入攻击。本文将...

    前端基于xml报文格式化工具

    5. **错误检查**:检查XML的语法,确保其符合XML规范,例如检测是否所有的标签都被正确关闭,是否有非法字符等。 6. **编辑支持**:用户可以对XML文档进行增删改查操作,工具应能实时反馈修改结果并保持格式的整洁...

Global site tag (gtag.js) - Google Analytics