課程
/后端開發
/Java
/Java眼中的XML---文件讀取
大神幫看看啊
2017-06-02
源自:Java眼中的XML---文件讀取 2-3
正在回答
首先你得知道節點得類型。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()); ????} }
把37、38行都括到if執行語句中去
我也有同樣的問題,請問你最后怎么解決的?
M__
你的if條件塊,沒有將兩個輸出語句都括起來,循環結束后第二個語句再用它就會空指針異常
應該是當前節點下沒有子節點
也就是說你的book.xml在<name>冰與火之歌</name>改成<name><a>aa</a>冰與火之歌</name>
你把的xml文件內容也截圖下吧,或者試下把38行換成system.out.println(cn.item(k).getFirstChild().getTextContent().getTextContent()); ? 看下有沒輸出值
RoyalT 提問者
瞳孔中的世界 回復 RoyalT 提問者
舉報
通過Java認識并且創造XML文件,如何應用 Java“解析 XML
3 回答老師,這里為什么會有空指針異常。。
1 回答為什么會有空指針異常
3 回答空指針異常
2 回答這是哪里的空指針異常?求解。
3 回答空指針異常怎么回事?求大神
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-02-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行代碼為:
2017-10-28
把37、38行都括到if執行語句中去
2017-08-24
我也有同樣的問題,請問你最后怎么解決的?
2017-07-21
你的if條件塊,沒有將兩個輸出語句都括起來,循環結束后第二個語句再用它就會空指針異常
2017-07-12
應該是當前節點下沒有子節點
也就是說你的book.xml在<name>冰與火之歌</name>改成<name><a>aa</a>冰與火之歌</name>
2017-06-09
你把的xml文件內容也截圖下吧,或者試下把38行換成system.out.println(cn.item(k).getFirstChild().getTextContent().getTextContent()); ? 看下有沒輸出值
2017-06-02
應該是當前節點下沒有子節點