!!!请教!!!各位老师,同学,请问这节视频中提到的characters是什么时候执行?
我自己试着调试了下,
感觉startElement是在遇到“<>”就执行,而endElement是在遇到“</>”就执行,那么
1.characters看不出来是在什么时候执行的,请问它是在遇到哪个标签时执行? 下面这个XML就让characters执行了十五次,费解。
2.characters方法中,传的ch数组, 我直接输出这串数组,发现输出跟原来的XML很像。ch数组是包含了XML里所有字符吗?
3.characters方法中,传的start指向的位置是<></>中间第一个字符的入口地址吗? 可是为什么我在characters方法中 System.out.println(new String(ch,start,10)); 发现它是下面这种输出的,我感觉是入口地址在<>前,如果<></>中有内容, 下一次 入口地址是在<>后。请问它的start到底指向哪儿?length不是输出的字符数量吗,为什么System.out.println(new String(ch,start,length));的时候只会输出<></>间的文本,不会将符号"<"和节点名称输出?
4. game节点中的id属性,可以根据视频那样用传入的attributes.getValue()输出,那么我写的 <英雄联盟 id="国服" 版本="3.14"></英雄联盟> ,如果是DOM解析,可以直接进入子节点通过getNodeValue得到id,版本属性,那么SAX解析如何直接将id属性和版本属性输出呢?
<game id
<英雄联盟 i
<角色 >瑞
瑞文</角色>
<ages>
18</ages>
....省略
我的xml文件。
<?xml version="1.0" encoding="GBK"?> <games> <game id="1"> <英雄联盟 id="国服" 版本="3.14"></英雄联盟> <角色 >瑞文</角色> <ages>18</ages> </game> <game id="2"> <QQ飞车 id="国服" 版本="6.07"></QQ飞车> <角色>风中过客</角色> <等级>109</等级> </game> </games>
话有点多, 请多包涵! 非常感谢!