以前没做SAX这方面的不知道,现在仔细研究了下才发现,SAX解析是有缺陷的
当我使用SAX解析器解析XHTML文件的时候,发现解析器无法正确的解析出文件当中的特殊字符,比如
¡
¢
£
¤
¥
我debug了一下
发现在继承自DefaultHandler的类中的characters方法中没有这些字符进来,而且还有一个现象是,一个标签中的所有字符会由&所在的特殊字符分成两部分。
网上有人说SAX解析中会跳过这段带有&的字符,但是为什么
" ---------------------------- "
& ---------------------------- &
< ---------------------------- <
> ---------------------------- >
这几个会转化为对应的普通字符显示,那么究竟是在SAX解析其中全部替换了,还是有什么其他原因呢,我找了下关于SAX解析方面的类源码,但是还是没找到具体原因.
不知道各位大虾有什么思路或者解决方法么(在解析过程中不改变XHTML文件的前提下),希望大家不吝赐教,小弟不胜感激。
当我使用SAX解析器解析XHTML文件的时候,发现解析器无法正确的解析出文件当中的特殊字符,比如
¡
¢
£
¤
¥
我debug了一下
发现在继承自DefaultHandler的类中的characters方法中没有这些字符进来,而且还有一个现象是,一个标签中的所有字符会由&所在的特殊字符分成两部分。
网上有人说SAX解析中会跳过这段带有&的字符,但是为什么
" ---------------------------- "
& ---------------------------- &
< ---------------------------- <
> ---------------------------- >
这几个会转化为对应的普通字符显示,那么究竟是在SAX解析其中全部替换了,还是有什么其他原因呢,我找了下关于SAX解析方面的类源码,但是还是没找到具体原因.
不知道各位大虾有什么思路或者解决方法么(在解析过程中不改变XHTML文件的前提下),希望大家不吝赐教,小弟不胜感激。
不过你可以考虑换个XML Parser试试,也许只是你现在用的这个Parser的实现问题
Predefined Entities
http://www.w3.org/TR/2008/REC-xml-20081126/#sec-predefined-ent
我明白的,你说的那些没有一个 XML 解析器能支持的,你只能自己手工处理。
不清楚这个能否解决
有点事情
没有细看你的问题