dom4j解析xml文档时的字符引用(数字实体)问题及初步分析。

本文探讨了使用DOM4J和SAXReader解析XML文档时遇到的问题,即某些字符实体如&#160和&#169被错误地显示为问号。文中详细介绍了这些实体的作用及正确的显示效果,并提出了疑问寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

xml中的字符引用 也叫作字符 实体编号实体 ,例如我们可以

 
& //显示一个and符号——&   

也可以 

&# 38//也是显示一个and符号——&   

第二种方式就叫做编号实体 ,在xml规范中定义了5个实体: 

<!ENTITY quot "&#34;" >    <!ENTITY amp  "&#38;" >    <!ENTITY apos "&#39;" >    <!ENTITY lt   "&#38;#60;" >    <!ENTITY gt   "&#62;" >   

我们可以通过名称quot、amp……来引用,也可以通过数字34、38……来引用。平时常用的(定义在HTML中的)实体还有: 

<!ENTITY nbsp "&#160;" >    <!-- 不折行空格 -->    <!ENTITY copy "&#169;" >   <!-- 版权符号 -->   

我的问题是,在dom4j 使用SAXReader解析xml文档时,其中的字符实体&#160、&#169都会变成问号——?,理论上来说 这里的数字(160、169)是字符在编码表中的(十进制)编码值,我给SAXReader设置的encoding是utf-8,难道unicode中没有160、169这两个值?

不知道大家是否有遇到这样的问题,有没有什么解决方法或思路?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值