亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

正在回答

7 回答

首先你得知道節點得類型。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());
????}
}


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

把37、38行都括到if執行語句中去

0 回復 有任何疑惑可以回復我~

我也有同樣的問題,請問你最后怎么解決的?

0 回復 有任何疑惑可以回復我~
#1

M__

把37、38行都括到if執行語句中去
2017-10-28 回復 有任何疑惑可以回復我~

你的if條件塊,沒有將兩個輸出語句都括起來,循環結束后第二個語句再用它就會空指針異常

2 回復 有任何疑惑可以回復我~

應該是當前節點下沒有子節點

也就是說你的book.xml在<name>冰與火之歌</name>改成<name><a>aa</a>冰與火之歌</name>

0 回復 有任何疑惑可以回復我~

你把的xml文件內容也截圖下吧,或者試下把38行換成system.out.println(cn.item(k).getFirstChild().getTextContent().getTextContent()); ? 看下有沒輸出值

0 回復 有任何疑惑可以回復我~

應該是當前節點下沒有子節點

0 回復 有任何疑惑可以回復我~
#1

RoyalT 提問者

我是照著視頻寫的??!
2017-06-05 回復 有任何疑惑可以回復我~
#2

瞳孔中的世界 回復 RoyalT 提問者

人家老師37,38行的兩個輸出是用大括號包起來的。你抄錯了。
2018-11-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我這里報空指針異常?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號