sax解析含特殊符号的xml文档.doc
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.setProperty("entityExpansionLimit",
"xxxxx");。xxxxx代表定的文件体引用数最大。义义义义义义义义义义义义义义义