dom4j特殊字符处理

问题:

最近在做项目时,遇到了解析xml问题。

使用dom4j解析xml信息时,如果属性值中包含&等特殊字符时,解析会提示如下异常:

java.lang.RuntimeException: 生成Document对象异常


1.dom4j解析xml

经过查询得知dom4j在解析xml信息时,需要对一些特殊字符进行特殊处理:

下面是五个在XML文档中预定义好的实体:

&lt; <  小于号

&gt; >  大于号

&amp; & 和

&apos; ‘ 单引号

&quot; "  双引号

比如你想输出“&”,那你的xml中要写成“&amp;”,当然你这个值是写在属性里的,是value=""这样的形式。


2.dom4j生成xml:

在使用dom4j生成xml文件时,对于特殊字符“&”,总会自动生成"&amp;",

因此在输入"<"或者">"时,&lt;代表<,结果将&转成"&amp;",就变成了"&amp;lt;",

因此在使用xsl生成html时造成"<"无法正常使用,解决方法是:

在创建writer对象时操作如下:

XMLWriter writer = new XMLWriter(fmt); //以输出格式为参数创建xml输出对象

writer.setEscapeText(false);

这样&符号就不会被转义了。

请参阅dom4j文档

setEscapeText

public void setEscapeText(boolean escapeText)

Sets whether text output should be escaped or not. This is enabled by default. It could be disabled if the output format is textual, like in XSLT where we can have xml, html or text output.

Parameters:

escapeText - DOCUMENT ME!

时间: 2024-09-30 06:04:45

dom4j特殊字符处理的相关文章

Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)

[目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析xml四种方法.DOM.SAX.JDOM.DOM4j.XPath [引言] 目前在Java中用于解析XML的技术很多,主流的有DOM.SAX.JDOM.DOM4j,下文主要介绍这4种解析XML文档技术的使用.优缺点及性能测试. 一.[基础知识——扫盲] sax.dom是两种对xml文档进行解析的方法(

源生API解析XML文档与dom4j解析XML文档

一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可以存储数据. 1.XML语言书写的注意事项 1.XML标签命名自定义[推荐英文],标签名中不能包含空格 2.XML空格和换行都表示数据,严格区分大小写 3.XML中特殊字符表示的数据需要使用特殊字符编码和HTML一样 4.CDATA区中的数据不会被识别为语法 <![CDATA[王天霸<>&l

XML、DTD、Schema、dom4j解析

XML:可扩展的标记语言 XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由用户自定义的. XML语法: XML文档声明 1.文档声明必须为<?xml开头,以?>结束; 2.文档声明必须从文档的0行0列位置开始: 3.文档声明只有属性: a) versioin:指定XML文档版本. b) encoding:指定当前文档的编码.可选属性,默认值是.utf-8: 元素element 1.元素是XML文档中最重要的组成部分, 2.普通元素的结构开始标签.元素体.结束标

linux 通配符、元字符和特殊字符

bash环境中非常有用的功能:通配符.转义字符和特殊字符 下面将逐一介绍 一. 通配符 通配符是一种特殊语句,主要有星号(*).问号(?)等表示,用来模糊搜索文件,当查找目录或文件时,可以使用通配符来代替一个或多个真正字符. 作用范围:目录和文件名 常见通配符:常用通配符包括 "*"."?" ."[ ]". "[^ ]" ."[! ]"和"{}",具体含义见下表 表1-1 通配符具体含义

【dom4j】解析xml为map

dom4j解析xml文件 <?xml version="1.0" encoding="utf-8"?> <workflows> <queryRequest> <branchId>88037062</branchId> <merSysId>00000317</merSysId> <queryNo>948983692</queryNo> <billType&

datagrid不能显示数据,原因在于JSON字符串存在特殊字符

最近在使用easyui的datagrid展示报表时老是出现报表不能正常显示的情况,看所拼接而成的JSON格式数据表面上却没任何的问题,根据经验排查了一下所生产字符串中是否含有特殊字符,果然查到部分字段里存在回车换行符,手动替换之后报表显示正常.问题找到了,接下来就是怎么解决问题的事: 一.从根源解决问题,在数据提交保存的时候就把该替换的全替换掉,一劳永逸.但写出来的东西很长,是不是有点难看. content=trim(Replace(Replace(Replace(Replace(Request

html的 特殊字符

特殊字符      转义字符(实体) <            <   (letter than) >            >  (greater than) 空格            (一个空格) 商标注册      ® 版权所有       ©

dom4j API使用简介

功能简介 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它.在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能.功能和易用性的评测,dom4j无论在那个方面都是非常出色的.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得

html特殊字符

直接输入下面字符,可显示相应图案 HTML特殊字符编码对照表 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码     !   ! " " " #   # $   $ %   % & & & '   ' (   ( )   ) *   * +   + ,   , -   - .   . /   / 0   0 1   1 2   2 3   3 4   4 5   5 6   6 7   7 8   8 9   9 :   : ;   ;