首页 > 代码库 > Java通过DOM解析XML

Java通过DOM解析XML

 1 package com.gcli.xml; 2  3 import java.io.IOException; 4  5 import javax.xml.parsers.DocumentBuilder; 6 import javax.xml.parsers.DocumentBuilderFactory; 7 import javax.xml.parsers.ParserConfigurationException; 8  9 import org.w3c.dom.Document;10 import org.w3c.dom.Element;11 import org.w3c.dom.NodeList;12 import org.xml.sax.SAXException;13 14 public class XMLDOMTest {15 16     public static void main(String[] args) {17         // (1)建立DocumentBuilderfactory ,用于取得DocumentBuilder18         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();19         // (2)通过DocumentBuilderfactory取得DocumentBuilder20         DocumentBuilder builder = null;21         try {22             builder = factory.newDocumentBuilder();23         } catch (ParserConfigurationException e) {24             e.printStackTrace();25         }26         // (3)定义Document接口对象,通过DocumenBuilder类进行DOM树转换操作27         Document doc = null;28         try {29             doc = builder.parse("C:\\javatest\\bookstore.xml");30         } catch (SAXException e) {31             e.printStackTrace();32         } catch (IOException e) {33             e.printStackTrace();34         }35         // (4)查找book的节点36         NodeList nl = doc.getElementsByTagName("book");37         // (5)遍历book节点,并输出内容38         for (int i = 0; i < nl.getLength(); i++) {39             Element element = (Element) nl.item(i);40             String category = element.getAttribute("category");41             String title = element.getElementsByTagName("title").item(0)42                     .getFirstChild().getNodeValue();43             String author = element.getElementsByTagName("author").item(0)44                     .getFirstChild().getNodeValue();45             String year = element.getElementsByTagName("year").item(0)46                     .getFirstChild().getNodeValue();47             String price = element.getElementsByTagName("price").item(0)48                     .getFirstChild().getNodeValue();49             System.out.println("第" + (i + 1) + "本书,类别:" + category + ",名字:"50                     + title + ",作者:" + author + ",出版时间:" + year + ",价格:"51                     + price + "。");52         }53     }54 55 }
 1   <?xml version="1.0" encoding="ISO-8859-1" ?>  2 - <bookstore> 3 - <book category="cooking"> 4   <title lang="en">Everyday Italian</title>  5   <author>Giada De Laurentiis</author>  6   <year>2005</year>  7   <price>30.00</price>  8   </book> 9 - <book category="children">10   <title lang="en">Harry Potter</title> 11   <author>J K. Rowling</author> 12   <year>2005</year> 13   <price>29.99</price> 14   </book>15 - <book category="web">16   <title lang="en">XQuery Kick Start</title> 17   <author>James McGovern</author> 18   <author>Per Bothner</author> 19   <author>Kurt Cagle</author> 20   <author>James Linn</author> 21   <author>Vaidyanathan Nagarajan</author> 22   <year>2003</year> 23   <price>49.99</price> 24   </book>25 - <book category="web" cover="paperback">26   <title lang="en">Learning XML</title> 27   <author>Erik T. Ray</author> 28   <year>2003</year> 29   <price>39.95</price> 30   </book>31   </bookstore>

 

Java通过DOM解析XML