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

获取到节点之后就可以进行获取节点属性之类的操作了

猜你喜欢

转载自blog.csdn.net/qq_37684824/article/details/84933514