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 ,用于取得DocumentBuilder

18         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

19         // (2)通过DocumentBuilderfactory取得DocumentBuilder

20         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>

 

你可能感兴趣的:(dom解析xml)