Node ge= gen.item(i);編譯及運(yùn)行錯(cuò)誤。求大神指教。
import?java.io.IOException; import?java.util.Collection; import?javax.xml.parsers.DocumentBuilder; import?javax.xml.parsers.DocumentBuilderFactory; import?javax.xml.parsers.ParserConfigurationException; import?javax.xml.soap.Node; import?org.w3c.dom.Document; import?org.w3c.dom.NamedNodeMap; import?org.w3c.dom.NodeList; import?org.xml.sax.SAXException; public?class?DomTest?{ public?static?void?main(String[]?args)?throws?ParserConfigurationException,?SAXException,?IOException?{ //?TODO?Auto-generated?method?stub //????錯(cuò)誤:調(diào)用前沒有new???DocumentBuilderFactory?dbf=new?DocumentBuilderFactory.newInstance();? DocumentBuilderFactory?dbf=?DocumentBuilderFactory.newInstance();?//創(chuàng)建xml解析器,用newInstance方法創(chuàng)建實(shí)例 DocumentBuilder?db=dbf.newDocumentBuilder();//定義使可以從xml中獲得document實(shí)例 Document?d=?db.parse("haha.xml");//解析的放入document中,用w3.。。 NodeList?gen=d.getElementsByTagName("book"); System.out.println("一共有"+gen.getLength()+"本書"); for(int?i=0;i<gen.getLength();i++){ System.out.println(gen.item(i)); // item為節(jié)點(diǎn)的元素。getAttributes();是得到該節(jié)點(diǎn)的屬性集合 Node?ge=(Node)?gen.item(i); //運(yùn)行異常,和老師寫的不一樣,老師寫的是 Node?ge=?gen.item(i);這樣寫編譯器會(huì)報(bào)錯(cuò)。 NamedNodeMap?att=ge.getAttributes(); for(int?j=0;j<att.getLength();j++){ Node?g=(Node)att.item(j); System.out.println(g); } } } }
錯(cuò)誤提示:
一共有2本書
Exception in thread "main" [book: null]
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DeferredElementImpl cannot be cast to javax.xml.soap.Node
at xmlTest.DomTest.main(DomTest.java:32)
2018-06-01
你這個(gè)是導(dǎo)入的包不對(duì),import org.w3c.dom.Node;應(yīng)該是這個(gè),而不是你這個(gè)程序中的那個(gè)
import?javax.xml.soap.Node;