1. 程式人生 > >XML-Dom4j解析和Xpath的解析

XML-Dom4j解析和Xpath的解析

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(); } }