XML-Dom4j解析和Xpath的解析
阿新 • • 發佈:2019-01-25
package com.zking.xml;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class XmlTest {
/*
* DOM4j解析XML檔案
*/
public static void dom4j() throws Exception {
SAXReader saxReader = new SAXReader();// 例項化saxReader物件
String path = XmlTest.class.getResource("config.xml").getPath();// 獲取xml所在的絕對路徑
Document document = saxReader.read(path);// 讀取xml的資訊
Element element = document.getRootElement(); // 獲取根節點的資訊
Iterator<Element> le = element.elementIterator();// 去迭代根節點下面的子節點
while (le.hasNext()) {
Element e = le.next();// 獲取根節點下的子節點資訊
String name = e.getName();// 獲取根節點下的子節點的名字
String value = e.attributeValue("屬性名稱"); // 獲取根節點下的子節點的屬性值
String text = e.getText(); // 獲取根節點下的子節點的值
}
}
/*
* 附加(注意):xml檔案在專案中存放位置 src根目錄下
* 類名.class.getResourceAsStream("/config.xml"); 1.2.2 與讀取配置檔案的類在同一包
* 類名.class.getResourceAsStream("config2.xml"); 1.2.3 WEB-INF(或其子目錄下)
* ServletContext application = this.getServletContext(); InputStream is =
* application.getResourceAsStream("/WEB-INF/config3.xml");
*/
/*
* XPATH解析xml檔案
*/
public static void xpath() throws Exception {
SAXReader saxReader = new SAXReader();// 例項化saxReader物件
String path = XmlTest.class.getResource("config.xml").getPath();// 獲取xml所在的絕對路徑
Document document = saxReader.read(path);// 讀取xml的資訊
List<Element> le = document.selectNodes("/config/action/forward");// 選擇節點查詢資訊,從根節點開始這裡找到了forward節點
for (Element e : le) {
String name = e.getName();// 獲取根節點下的子節點的名字
String value = e.attributeValue("屬性名稱"); // 獲取根節點下的子節點的屬性值
String text = e.getText(); // 獲取根節點下的子節點的值
}
}
public static void main(String[] args) throws Exception {
/*
* DOM4j解析XML檔案
*/
dom4j();
/*
* XPATH解析xml檔案
*/
xpath();
}
}