JAVA使用XPath常用的路径表达式
程序员文章站
2022-07-13 15:29:51
...
JAVA使用XPath常用的路径表达式
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。W3C教程
经常使用到的路径表达式:
- nodename 选取此节点的所有子节点
- / 从根节点选取
- // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
- . 选取当前节点
- … 选取当前节点的父节点
- @ 取值属性
使用
public class XpathTest {
@Test
public void testXpath() throws DocumentException {
InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("books.xml");
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(resourceAsStream);
Element rootElement = document.getRootElement();
// 找 xml 根元素的下一级元素
List<Element> selectNodes = rootElement.selectNodes("book");
for (int i = 0; i < selectNodes.size(); i++) {
Element element = selectNodes.get(i);
System.out.println(element);
}
}
}
使用谓语的表达式
- /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
- /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
- /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
- /bookstore/book[position()< 3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
- //title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
- //title[@lang=‘eng’] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
- /bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
- /bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。
选取未知节点
-
- 匹配任何元素节点。
- @* 匹配任何属性节点。
- node() 匹配任何类型的节点。
上一篇: js改变对象属性名方法
下一篇: HTML 颜色