sax解析含特殊符号的xml文档.doc_第1页
sax解析含特殊符号的xml文档.doc_第2页
sax解析含特殊符号的xml文档.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SAX解析含特殊字符的xml文档(java)一、不含自定义字符或含较少量的特殊字符一般的特殊字符有五个:&,,(单引号),”(双引号)。这些字符如果直接出现在xml文档中,一般是不能解析出来的,如解析a&b时会报错。解决方法有两个:1. 用标记;2.转义。1. 用标记对于含特殊字符的element用标记起来即可成功解析,如该方法简单但不实用,对于每个含特殊字符的element都要用标记。数量很少是推荐用这种方法。2. 转义特殊字符数量很多时方法1显然不实用,此时可用转义来实现:< 大于号 & & 和 ' 单引号 " 双引号即将xml中的特殊文档全部替换为转义字符,如a&b变成a&b。但是对于这种情况解析过程会发生变化,不是一次性解析a&b,而是分三步,先解析a,然后是&,然后是b,因此要注意想要获得中数据必须要用String变量将这三部分加起来。即解析程序中public void characters(char ch, int start, int length) throws SAXException if(this.tagName!=null) String date=new String(ch,start,length); /date就是当前节点(tagName)解析出来的数据 example=example+date;/example是已申明的用来存储中数据的Sting变量这样解析出的example变量才是a&b,如果直接用example=date;得到的example的变量的只是b。二、含自定义字符或含较多的特殊字符(用dtd文件验证)DTD文件格式及验证xml原理(百度)如何解析含DTD的xml文件呢?将dtd文件导入当前工程,在xml文件中加入即可。如解析aüb,在dtd文件中声明 验证ü代表字符。三、含单引号的xml解析后插入数据库:用上面方法可以解析出xml中含单引号的数据(String型数据),但要将数据插入数据库中却很容易出现问题,因为sql语句中不允许单独的单引号存在,解决办法很简单,将解析所得的数据中的单引号用函数replaceAll()替换成双引号在插入数据库即可。四、解析含较多实体引用的大型的xml文档(如1G)xml实体引用都是以&开头,以;结尾,如第二大点中的ü就是一个实体引用。对于大型的xml文档,含有的实体引用可能太多导致解析过程报错:Parser has reached the entity expansion limit 64,000 set by the Application.即单个xml文件中实体引用超过了默认值64000个。这时只要在解析前设置单个xml文件中实体引用的最大数量即可,System.se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论