dom4j xpath 解析html,[转载]Dom4j 和 xpath结合

XML 实例文档

我们将在下面的例子中使用这个 XML 文档。

encoding="ISO-8859-1"?>

lang="eng">Harry

Potter

29.99

lang="eng">Learning

XML

39.95

选取节点

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

路径表达式

结果

bookstore

选取 bookstore 元素的所有子节点(这样描述似乎不太准确,请看下面的说明)

/bookstore

选取根元素 bookstore

注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

bookstore/book

选取所有属于 bookstore 的子元素的 book 元素。

//book

选取所有 book 子元素,而不管它们在文档中的位置。

bookstore//book

选择所有属于 bookstore 元素的后代的 book 元素,而不管它们位于 bookstore 之下的什么位置。

选取所有含有lang属性的title节点。

说明:

1.document.getRootElement().selectNodes("bookstore")

这样是查不出结果,因为document.getRootElement()得到的是

bookstore节点,当再次selectNodes("bookstore") 时就查不出结果了

document.getRootElement().selectNodes("book")

这样可以查出根节点下的 两个book节点

document.selectNodes("bookstore")

这样可以查出一个 bookstore节点

document.selectNodes("book")

这样查不出结果,因为 book不在当前

document下,也就是说必须是再当前节点下的子节点才行

2.document.getRootElement().selectNodes("/bookstore")

可以查出一个bookstore节点,其中中 / 代表从根节点选取

document.getRootElement().selectNodes("/book") 这样是不对的,应写

/bookstore/book ,也就是必须要写全book的绝对路径,而且不管 是

document.selectNodes("/bookstore/book")

还是document.getRootElement().selectNodes("/bookstore/book") 都可以查处两个

book节点,不管 从哪个节点开始查,只要写得是正确的绝对路径,都可以查出结果

3.document.selectNodes(//*[@lang='eng'])代表查出所有

lang属性的值=eng 的节点,不管他在文档的什么位置

document.selectNodes(//title[@lang='eng'])

代表 查出 所有lang属性的值=eng 的title节点,不管他再文档的什么位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值