1. 程式人生 > >xpath解析xml檔案

xpath解析xml檔案

最近在做xml檔案的解析,需要獲取其中某些節點或某些屬性,一開始用迴圈來做,顯得很蠢,後來瞭解到dom4j,以及xpath,程式碼可讀性顯著增強。


首先取得xml檔案的根結點

SAXReader reader = new SAXReader();
File file = new File("books.xml");
Document document = reader.read(file);
Element root = document.getRootElement();

重點說明xpath用法

String xpath1 = "node/node/node[@name='xiaoming']";
String xpath2 = "following-sibling::*[1]";
String xpath3 = "//node/node[@name='xiaohong'];

List<Node> nodeList1 = root.selectNodes(xpath1);
Node node = root.selectSingleNode(xpath2);
List<Node> nodeList2 = root.selectNodes(xpath3);

nodeList1是root節點下的所有符合  node節點下node節點下的符合name屬性=xiaoming的所有node節點

nodeList2是整個文件中所有符合  node節點下的符合name屬性=xiaohong的所有node節點

node是root節點下的第一個兄弟節點(索引從1開始),如果沒有則為null

獲取到節點之後就可以進行獲取節點屬性之類的操作了