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节点,不管他再文档的什么位置