//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----");
????????}
2022-07-05
這個(gè)寫法可以,很有規(guī)范