運(yùn)行程序報(bào)錯(cuò)。。
完整代碼如下:
package com.imooc.dmtest.test;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class DOMETest {
public static void main(String[] args) {
// TODO Auto-generated method stub
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
try{
DocumentBuilder db=dbf.newDocumentBuilder();
Document document=db.parse("books.xml");
NodeList bookList=document.getElementsByTagName("book");
System.out.println(bookList.getLength()+"本書");
for(int i=0;i<bookList.getLength();i++)
{
// Node book=bookList.item(i);
// NamedNodeMap attrs=book.getAttributes();
// System.out.println("第i+1本書"+attrs.getLength()+"屬性");
// for(int j=0;j<attrs.getLength();j++)
// {
// Node attr=attrs.item(j);
// System.out.println("屬性名"+attr.getNodeName());
//
// System.out.println("屬性值"+attr.getNodeType());
//
// }
Element book=(Element) bookList.item(i);
String attrValue=book.getAttribute("id");
System.out.println("id屬性的屬性值為"+attrValue);
}
}catch(ParserConfigurationException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
錯(cuò)誤提示如下:
[Fatal Error] books.xml:1:37: 應(yīng)該有偽屬性名。
org.xml.sax.SAXParseException; systemId: file:///D:/%E6%90%9C%E7%8B%97%E9%AB%98%E9%80%9F%E4%B8%8B%E8%BD%BD/eclipse442win32/DOMETest/books.xml; lineNumber: 1; columnNumber: 37; 應(yīng)該有偽屬性名。
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:177)
at com.imooc.dmtest.test.DOMETest.main(DOMETest.java:24)
不清楚是怎么回事?
還有那個(gè)books.xml文件里的是文字都是無(wú)法顯示的,但是就是utf-8的???
2016-12-12
關(guān)于xml文件里的文字無(wú)法顯示,你看下文件保存時(shí)的編碼格式是什么,如果不是utf-8,就改成utf-8編碼模式,或者是你eclipse項(xiàng)目的編碼格式不是utf-8編碼模式,改正即可,排除以上之后就是你代碼估計(jì)哪里調(diào)用錯(cuò)了,重新核對(duì)一下。還有你說的錯(cuò)誤提示,我英文不好能力有限暫時(shí)看不出是哪個(gè)地方出了異常