伪代码
查询指定
SAXReader read=new SAXReader();<br> Document document=read.read("src/book.xml");<br> Node node=document.selectSingleNode("/书架/书[2]/书名");<br> System.out.println(node.getText());
查询所有
SAXReader read=new SAXReader();<br> Document document=read.read("src/book.xml");<br> List<Node> list=document.selectNodes("//*");<br> for (Node ob : list) {<br> System.out.println(ob.getName()+"\t"+ob.getText());
查询指定1
SAXReader read=new SAXReader();<br> Document document=read.read("src/book.xml");<br> List nodes=document.selectNodes("//@*");<br> for (int i = 0; i < nodes.size(); i++) {<br> Node node=(Node) nodes.get(i);<br> System.out.println(node.getName()+"\t"+node.getText());<br> }
定位语法
解释:基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径
以斜线 / 开始
/AAA/DDD/BBB
选择AAA的子元素DDD的所有子元素
以双斜线 // 开头
//DDD/BBB
选择所有父元素是DDD的BBB元素
星号 * 表示
/AAA/CCC/DDD/*
选择所有路径依附于/AAA/CCC/DDD的元素
/*/*/*/BBB
选择所有的有3个祖先元素的BBB元素
方块号里的表达式
/AAA/BBB[1]
选择AAA的第一个BBB子元素
/AAA/BBB[last()]
选择AAA的最后一个BBB子元素
@里的表达式
//BBB[not(@*)]
选择没有属性的BBB元素
准则
//BBB[@id='b1']
选择含有属性id且其值为'b1'的BBB元素
。。。
//BBB[normalize-space(@name)='bbb']
选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为'bbb'的BBB元素
count()函数
。。。