輸出的結(jié)果為0
?public static void main(String[] args) {
??//創(chuàng)建一個(gè)DocumentBuilderFactory的對(duì)象
??DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
??//創(chuàng)建一個(gè)DocumentBuilder的對(duì)象
??
??try {
???//創(chuàng)建DocumentBuilder對(duì)象
??? DocumentBuilder db = dbf.newDocumentBuilder();
????//創(chuàng)建DocumentBuilder對(duì)象
????org.w3c.dom.Document document = db.parse("books.xml");
???
????//獲取所有VatBatch000000022016-07-27_10-55-22節(jié)點(diǎn)的集合
????NodeList bookList = document.getElementsByTagName("books");
????//通過(guò)nodelist的getLength()方法可以獲取bookList的長(zhǎng)度
????System.out.println("一共有" + bookList.getLength() + "臺(tái)機(jī)器");
????//遍歷每一個(gè)book節(jié)點(diǎn)
????for (int i = 0; i < bookList.getLength(); i++) {
?????System.out.println("=================下面開(kāi)始遍歷第" + (i + 1) + "本書(shū)的內(nèi)容=================");
?????//通過(guò) item(i)方法 獲取一個(gè)Vat節(jié)點(diǎn),nodelist的索引值從0開(kāi)始
?????Node Vat = bookList.item(i);
//?????獲取Vat節(jié)點(diǎn)的所有屬性集合
?????NamedNodeMap attrs = Vat.getAttributes();
?????System.out.println("第 " + (i + 1) + "臺(tái)共有" + attrs.getLength() + "個(gè)屬性");
//?????遍歷book的屬性
?????for (int j = 0; j < attrs.getLength(); j++) {
??????//通過(guò)item(index)方法獲取book節(jié)點(diǎn)的某一個(gè)屬性
??????Node attr = attrs.item(j);
??????//獲取屬性名
??????System.out.print("屬性名:" + attr.getNodeName());
??????//獲取屬性值
??????System.out.println("--屬性值" + attr.getNodeValue());
?????}
//????
?????//解析book節(jié)點(diǎn)的子節(jié)點(diǎn)
?????NodeList childNodes = Vat.getChildNodes();
?????//遍歷childNodes獲取每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)名和節(jié)點(diǎn)值
?????System.out.println("第" + (i+1) + "本書(shū)共有" +
?????childNodes.getLength() + "個(gè)子節(jié)點(diǎn)");
?????for (int k = 0; k < childNodes.getLength(); k++) {
??????//區(qū)分出text類(lèi)型的node以及element類(lèi)型的node
??????if (childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) {
???????//獲取了element類(lèi)型節(jié)點(diǎn)的節(jié)點(diǎn)名
???????System.out.print("第" + (k + 1) + "個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)名:"
???????+ childNodes.item(k).getNodeName());
//???????獲取了element類(lèi)型節(jié)點(diǎn)的節(jié)點(diǎn)值
???????System.out.println("--節(jié)點(diǎn)值是:" + childNodes.item(k).getFirstChild().getNodeValue());
//???????System.out.println("--節(jié)點(diǎn)值是:" + childNodes.item(k).getTextContent());
??????}
?????}
?????System.out.println("======================結(jié)束遍歷第" + (i + 1) + "本書(shū)的內(nèi)容=================");
????}}catch (ParserConfigurationException e) {
????// TODO Auto-generated catch block
????e.printStackTrace();
???} catch (SAXException e) {
????// TODO Auto-generated catch block
????e.printStackTrace();
???} catch (IOException e) {
????// TODO Auto-generated catch block
????e.printStackTrace();
???}
??}
?
}
2016-08-12
? ?//獲取所有VatBatch000000022016-07-27_10-55-22節(jié)點(diǎn)的集合
????NodeList bookList = document.getElementsByTagName("book"); ? ? ?//把books改為book
????//通過(guò)nodelist的getLength()方法可以獲取bookList的長(zhǎng)度