1. 程式人生 > >dom4j解析器sax解析xml文件

dom4j解析器sax解析xml文件

pri clip nco 收藏 sel 新建 添加 ack 想要

1.使用dom4j解析器解析xml

***解析器dom4j是由dom4j組織提供的,針對xml進行解析。dom4j不是Javase的一部分,使用時需要導入dom4j的jar包(官網下載)

  在eclipse裏,復制jar包,然後新建文件夾lib粘貼進入,然後單擊鼠標右鍵jar包----->build path----->add to build path

  看到jar包變成奶瓶樣子,表示導入成功。

* 得到document對象

      SAXReader reader=new SAXReader();

      Document document=reader.read(url);

*document對象的父接口是Node

      **如果在document對象裏找不到想要的方法,就去Node裏面去找。

*document裏的方法getRootElement():得到根節點,並返Element

*Element也是一個接口,父接口是Node

       **Element和Node裏的方法

        getParent():獲取父節點

        addElement():添加標簽

需求:查詢所有name元素裏的值

代碼:

animal.xml

<?xml version="1.0" encoding="UTF-8"?>
<animal>
<cat>
<name>湯姆</name>
<color>black</color>
<age>10</age>
</cat>
<cat>
<name>醜小鴨</name>
<color>yellow</color>
<age>15</age>
</cat>
</animal>

dom4j.java

package example4;

import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

class dom4j{
public static void main(String[] args) throws Exception {
selectName();
}

//查詢第一個name元素的值

public static void selectOne() throws Exception {
SAXReader saxreader = new SAXReader();
Document document = saxreader.read("src/example4/animal.java");
Element root = document.getRootElement();
Element cat = root.element("cat");
Element name = cat.element("name");
String s=name.getText();
System.out.println(s);
}

// 獲取第二個name元素裏的值
public static void selectSecond() throws Exception {
SAXReader saxreader=new SAXReader();
Document document=saxreader.read("src/example4/animal.xml");
Element root=document.getRootElement();
List<Element> list=root.elements("cat");
Element cat2=list.get(1);
Element name2=cat2.element("name");
String s=name2.getText();
System.out.println(s);
}


// 查詢xml中所有name元素的值
public static void selectName() throws Exception {
// 創建解析器
SAXReader saxreader = new SAXReader();
//得到document對象
Document document=saxreader.read("src/example4/animal.xml");
//得到根節點
Element root=document.getRootElement();
//得到cat結點
List<Element> list=root.elements("name");
//得到cat元素下的name元素
for (Element element: list) {
//element是每一個cat元素
//得到cat下面的name元素
Element name1=element.element("name");
String s=name1.getText();
System.out.println(s);
}
}
}

好文要頂 關註我 收藏該文 技術分享圖片 技術分享圖片

dom4j解析器sax解析xml文件