資源中的大多數(shù)教程都是重點都是在如何把 XPath 作為一個通用的 XML 處理工具來使用的 - 幸運的是在 [X]HTML 上使用 XPath 大大限制了它的范圍。
我如何定位一個元素?
使用上面提到的某個 Firefox 擴展并且在元素上點擊右鍵,把結(jié)果粘貼到你的腳本的第二個參數(shù)。缺點: 這樣得到的路徑比較脆弱 (一個完整的路徑像這樣/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
設(shè)置 selectors [1] [2] 等從 1 開始計數(shù),而不是 0
如果你在一個元素里面使用多個 class 譬如<div class="foo bar">) 你可以使用//div[contains(@class, "foo")]來尋找匹配的元素。
不要忘了 id 不能有數(shù)字開頭。
不要忘了<a>元素有 name 而不是 id。
為什么這些 @#$%! XPath 在 IE6 下不能工作?!Why wont this @#$%! XPath work in IE6?!
某些原因?qū)е?XPath 表達式id('foo')/span在 IE6 下無法工作。嘗試使用//div[@id='foo']/span替代它。
//div[5][@class="foo"](在 document 中選擇 class 為 foo 的第五個 div) 在 IE6 下不工作。嘗試使用/descendant::div[@class="foo"][5]替代它。