//Book类 package com.imooc.xmlText; public class Book { private String id; private String name; private String author; private String year; private String price; private String language; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } public String getLanguage() { return language; } public void setLanguage(String language) { this.language = language; } } //////////////////////////////////////////////////////////// package com.imooc.xmlText; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class DOMTest1 { public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException { DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder(); //解析xml文件 Document document=documentBuilder.parse("demo/books1.xml"); NodeList bookList= document.getElementsByTagName("book"); Book newBook=new Book(); List<Book> newBookList=new ArrayList<Book>(); System.out.println("共有"+bookList.getLength()+"本书"); for(int i=0;i<bookList.getLength();i++){ Node book=bookList.item(i); NamedNodeMap attrs= book.getAttributes(); for(int j=0;j<attrs.getLength();j++){ Node attr=attrs.item(j); newBook.setId(attr.getNodeValue()); System.out.println(attr.getNodeName()+":"+attr.getNodeValue());} NodeList childList=book.getChildNodes(); for(int m=0;m<childList.getLength();m++){ Node child=childList.item(m); if(child.getNodeType()==Node.ELEMENT_NODE){ switch(child.getNodeName()){ case "name": newBook.setName(child.getTextContent()); break; case "author": newBook.setAuthor(child.getTextContent()); break; case "year": newBook.setYear(child.getTextContent()); break; case "price": newBook.setPrice(child.getTextContent()); break; case "language": newBook.setLanguage(child.getTextContent()); break; } System.out.println(child.getNodeName()+":"+child.getTextContent());} } newBookList.add(newBook); newBook=new Book(); } System.out.println("共有"+newBookList.size()+"本书"); for (Book book:newBookList) { System.out.println("第"+book.getId()+"本书"); System.out.println("Name:"+book.getName()); System.out.println("Author:"+book.getAuthor()); System.out.println("Year:"+book.getYear()); System.out.println("Price:"+book.getPrice()); System.out.println("Language:"+book.getLanguage()); System.out.println("----finish----"); }
这个写法可以,很有规范