为了账号安全,请及时绑定邮箱和手机立即绑定

老师讲的不对吧

value不是获取节点值吗,但是xml文件中的换行空格不也是算作节点值吗,这样一开始传递给book对象的seiName()里的value不是一个空的值吗?????

正在回答

1 回答

我记得昨晚回答了,怎么今天没有了。

首先你要明白,handler的执行顺序,先是开始节点,startElement,然后Characters,然后在结束,再Characters方法代码块里,已经将value值赋值了,就是那句value=new String(ch, start, length); 这一句就赋与了相对应的Element的值,也就是说qName等于name时,其实已经自动传入对应的start,length进去了,因为ch是数组嘛。

所以在endElement处进行判断如果qName.equals("name"),就 book.setName(value);为什么要判断呢,因为xml的换行空格算子节点,那么这些节点名字肯定不是name。

所以整体的一个机制:你可以理解成handler类似一种带处理功能的指针,遍历xml文件时,从开头读到结尾是一个一个节点开始。而里面相应的变量的值在变化,变化的顺序startElement,然后Characters,然后在endElement。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

老师讲的不对吧

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信