资源中的大多数教程都是重点都是在如何把 XPath 作为一个通用的 XML 处理工具来使用的 - 幸运的是在 [X]HTML 上使用 XPath 大大限制了它的范围。
我如何定位一个元素?
使用上面提到的某个 Firefox 扩展并且在元素上点击右键,把结果粘贴到你的脚本的第二个参数。缺点: 这样得到的路径比较脆弱 (一个完整的路径像这样/html/body/div[1]/div[5]/div/table/tbody/tr/td/p/a[3]如果任何一个元素被加到了第三个 a 之前那么这个路径被破坏了,并且不同的浏览器也可能会把类似 tbody 这样的元素插入到不同的位置)
尝试在你的代码中包含 id
如果你不能得到 id,尝试选择一个对于页面来说的 class ('contentheading' etc) 并且从这里开始://div[@class='contentheading']/span[1]
Gotchas
设置 selectors [1] [2] 等从 1 开始计数,而不是 0
如果你在一个元素里面使用多个 class 譬如<div class="foo bar">) 你可以使用//div[contains(@class, "foo")]来寻找匹配的元素。
不要忘了 id 不能有数字开头。
不要忘了<a>元素有 name 而不是 id。
为什么这些 @#$%! XPath 在 IE6 下不能工作?!Why wont this @#$%! XPath work in IE6?!
某些原因导致 XPath 表达式id('foo')/span在 IE6 下无法工作。尝试使用//div[@id='foo']/span替代它。
//div[5][@class="foo"](在 document 中选择 class 为 foo 的第五个 div) 在 IE6 下不工作。尝试使用/descendant::div[@class="foo"][5]替代它。