dom4j解析器sax解析xml文件
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文件