JAVA讀取XML文件

解析XML的步驟以下:java

  1.建立DocumentBuilder工廠
  2.建立DocumentBuilder對象
  3.DocumentBuilder對象的parse方法獲得Document對象
  4.Document對象的getElementsByTagName獲得NodeList集合
  5.經過getFirstChild和getNextSibling進行遍歷
 node

用到的包:dom

import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;

ui

用到的對象:spa

DocumentBuilderFactory:建立DocumentBuilder的抽象工廠code

DocumentBuilder:能夠從 XML 獲取一個 Documentxml

Document:提供供對文檔數據的基本訪問對象

用到的方法:blog

DocumentBuilder.parse(String)':將給定 URI 的內容解析爲一個 XML 文檔,而且返回一個新的 DOM Document對象文檔

Document.getElementsByTagName(String)':返回具備給定標記名稱的全部 Element 的 NodeList

Element.getAttribute(String)':經過名稱得到屬性值

下面來解析一個XML文件

 1 import javax.xml.parsers.*;  
 2 import org.w3c.dom.*;  
 3 import org.xml.sax.*;  
 4   
 5 public class Test  
 6 {  
 7     public static void main(String[] args)  
 8     {  
 9         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
10         try  
11         {  
12             DocumentBuilder db = dbf.newDocumentBuilder();  
13             Document doc = db.parse("pet2.xml");  
14   
15             NodeList dogList = doc.getElementsByTagName("dog");  
16             System.out.println("共有" + dogList.getLength() + "個dog節點");  
17             for (int i = 0; i < dogList.getLength(); i++)  
18             {  
19                 Node dog = dogList.item(i);  
20                 Element elem = (Element) dog;  
21                 System.out.println("id:" + elem.getAttribute("id"));  
22                 for (Node node = dog.getFirstChild(); node != null; node = node.getNextSibling())  
23                 {  
24                     if (node.getNodeType() == Node.ELEMENT_NODE)  
25                     {  
26                         String name = node.getNodeName();  
27                         String value = node.getFirstChild().getNodeValue();  
28                         System.out.print(name + ":" + value + "\t");  
29                     }  
30                 }  
31                 System.out.println();  
32             }  
33         }  
34         catch (Exception e)  
35         {  
36             e.printStackTrace();  
37         }  
38     }  
39 }  

XML文件

 1 <pets>  
 2     <dogs>  
 3         <dog id="1">            
 4             <name>YAYA</name>  
 5             <health>100</health>  
 6             <love>0</love>  
 7             <strain>酷酷的雪娜瑞</strain>  
 8         </dog>  
 9         <dog id="2">            
10             <name>OUOU</name>  
11             <health>90</health>  
12             <love>15</love>  
13             <strain>聰明的拉布拉多犬</strain>  
14         </dog>  
15     </dogs>  
16     <penguins>  
17         <penguin id="3">            
18             <name>QQ</name>  
19             <health>100</health>  
20             <love>20</love>  
21             <sex>Q仔</sex>             
22         </penguin>          
23     </penguins>  
24 </pets>  
相關文章
相關標籤/搜索