xmlDOM解析示例

XML

XML即可拓展標記語言。他是一種簡單的數據存儲語言,使用一系列簡單的標籤描述數據,這些標籤可以用方便的方式建立。

pet.xml示例:

<?xml version="1.0" encoding="UTF-8"?>
<pet>
<dog id="1">
<name>小黑</name>
<age>3</age>
<weight>100</weight>
</dog>
<dog id="2">
<name>小白</name>
<age>2</age>
<weight>80</weight>
</dog>
</pet>

 

DOM解析XML

DOM Document Object Model的縮寫,即文檔對象模型。XML將數據組織爲一棵樹,所以DOM就是對這棵樹的一個對象的描述。通俗的說,就是通過解析XML文檔,爲XML文檔在邏輯上建立一個樹模型,樹的節點是一個個對象,我們通過存取這些對象就能夠存取XML文檔的內容。

見圖:

DOM解析代碼:

package Talking;
import java.io.IOException;
import java.io.ObjectInputStream.GetField;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class TestPetXml {
public static void main(String[] args){
//從DOM工廠獲得DOM解析器
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//從DOM工廠獲得DOM解析器
DocumentBuilder db = dbf.newDocumentBuilder();
//解析XML文檔,得到一個Document,即DOM樹
Document doc = db.parse("f:/pet.xml");
//得到pet所有節點列表信息
NodeList perList = doc.getElementsByTagName("dog");
//輪循書本信息
System.out.println("XML文件中pet的初始化信息");
for(int i = 0;i<perList.getLength();i++){
//得到pet元素
Element dog = (Element) perList.item(i);
//得到dog元素下的id屬性的值
String strId = dog.getAttributeNode("id").getNodeValue();
//得到dog元素下的name屬性
String strName = dog.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
//得到dog元素下的age屬性
String niAge = dog.getElementsByTagName("age").item(0).getFirstChild().getNodeValue();
//得到dog元素下的weight屬性
String weight = dog.getElementsByTagName("weight").item(0).getFirstChild().getNodeValue();
System.out.println("id:"+strId+",name:"+strName+",age:"+niAge+",weight:"+weight);
}
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
}
}

輸出結果:

XML文件中pet的初始化信息

id:1,name:小黑,age:3,weight:100

id:2,name:小白,age:2,weight:80

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章