今使用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中的非法字符问题
非法字符通常指的是那些在特定上下文中不应出现的字符,比如在SQL查询中,单引号(')和分号(;)可能被用来构造SQL注入攻击;在文件路径中,某些字符如*、?、/、\可能引起解析错误或导致意外的操作。描述中提到的"/"、...
本文将详细讲解如何利用监听器进行访问计数以及通过过滤器来过滤非法字符,以确保系统的安全性和用户体验。 首先,我们来看监听器。在Java的Servlet规范中,监听器是一种特殊的Servlet组件,它能够监听特定的事件并...
本文将深入探讨标题中的两个关键类:`XssFilter.java` 和 `XssHttpServletRequestWrapper.java`,以及它们在过滤非法字符中的作用。 首先,`XssFilter.java` 是一个实现了Servlet过滤器接口(javax.servlet.Filter...
描述中提到的“NULL”可能是作者在原始博客中没有提供具体细节,但我们可以推测,这个问题可能是因为源代码文件使用了UTF-8编码,而Ant默认使用的是GBK或者其他非UTF-8的编码格式,当Ant尝试读取或编译这些文件时,...
本文将深入探讨XML中的非法字符以及如何通过转义字符来解决这一问题。 在XML文档中,有两个字符是严格禁止出现的,它们分别是小于号 "和和号 "&"。这是因为这两个字符在XML语法中具有特殊含义,"用于开始一个元素...
2. **非法字符判断**:接下来,使用`Path.GetInvalidFileNameChars`方法获取所有非法字符的数组,然后使用`IndexOfAny`方法检查输入的字符串中是否包含这些非法字符。如果`IndexOfAny`返回值大于等于0,说明字符串中...
在C#编程中,有时我们需要处理用户输入或者从外部数据源获取的数据,这些数据可能包含非法字符,如SQL注入攻击常用的特殊字符。为了确保数据安全和应用的正常运行,我们需要过滤掉这些非法字符。本篇文章将详细介绍...
在C#中,处理XML字符串时,由于XML的语法规则,某些特殊字符不能直接出现在XML文档中,否则会导致解析错误。这些特殊字符包括小于号 `、大于号 `>`、和与号 `&`。此外,对于XML属性值,单引号 `'` 和双引号 `"` 也...
然而,XML文档在生成或传输过程中可能会因为各种原因导致格式不规范,如缺失结束标签、非法字符等,这时就需要XML-repair工具类进行修复。 首先,让我们深入了解XML的规范和常见问题。XML文档必须遵循一定的语法...
8. **错误处理**:在处理XML文档时可能会遇到错误,如语法错误或非法字符。DOM提供了一套错误处理机制,帮助开发者捕获和处理这些问题。 9. **示例代码**:手册通常会包含大量示例代码,展示如何使用DOM API进行...
它能够实时检测并提示用户在编写XML文档时可能存在的语法错误,如未闭合的标签、非法字符或不符合XML规范的结构。这有助于确保XML文档的结构正确无误,避免因格式问题导致的数据解析错误。 其次,XML Schema(XSD)...
5. **错误处理**:解析过程中可能出现各种错误,如语法错误、非法字符、未关闭的元素等。理解XML-Parser-2.4.4如何捕获和报告这些错误是调试和保证代码健壮性的重要环节。 6. **编码处理**:XML支持多种字符编码,...
"的XML语句是使用CDATA,因为"在XML中是非法的。所以选项B是正确的:`<![CDATA[if a<c then c=a+b;]]>`。 5. **名字空间声明**: - 名字空间声明的直接定义格式是:`xmlns:<名字空间前缀>=”<名字空间名>”`,...
在IT领域,尤其是在数据库操作与编程中,对特殊字符的处理是至关重要的。特殊字符,如方括号、单引号、百分号、下划线和脱字号等,在SQL语句中有特定的意义,若不正确处理,可能会导致SQL语法错误或注入攻击。本文将...
5. **错误检查**:检查XML的语法,确保其符合XML规范,例如检测是否所有的标签都被正确关闭,是否有非法字符等。 6. **编辑支持**:用户可以对XML文档进行增删改查操作,工具应能实时反馈修改结果并保持格式的整洁...
4. **错误检查**:检测XML文档是否符合规范,如缺少结束标签、非法字符等,并给出提示。 5. **搜索与替换**:在XML文档中快速查找特定文本或模式,并进行替换操作。 6. **XPath支持**:支持XPath(XML路径语言),...
4. **错误检查**:检测并报告XML文档中的语法错误,如未关闭的标签或非法字符。 5. **验证**:根据指定的XML模式(Schema)或DTD(Document Type Definition)验证文档的结构是否合法。 6. **搜索与替换**:在XML...