为什么我这里报空指针异常?
大神帮看看啊
大神帮看看啊
2017-06-02
首先你得知道节点得类型。1.Element 节点 2. Text 节点 3.Attr 节点
其中代码 cn节点集合下一共有9个子节点,根据此xml,解析类型顺序依此(空格或回车为#text类型)
(#text,Element,#text,Element,#text,Element,#text,Element,#text)
“cn.item(k)”得到的,可能是一个Element节点(例如:<name>冰与火之歌</name>)或者
#text节点类型,因为没有子节点,也就是说,代码“cn.item(k).getFirstChild()”为null,而你的代码
“cn.item(k).getFirstChild().getTextContent()”其中又进行对null对象的操作,所以指针为空了。
解决方法:
修改34-39行代码为:
NodeList cn=book.getChildNodes(); for (int k = 0; k < cn.getLength(); k++) { if (cn.item(k).getNodeType()==Node.ELEMENT_NODE) { System.out.println(cn.item(k).getNodeName()); System.out.println(cn.item(k).getFirstChild().getNodeValue()); } }
举报