firefox瀏覽器安裝xpath checker插件
xpath是一門在xml文檔中查找信息的語言,用於在XML文檔中通過元素和屬性進行導航
1.xpath 術語
1.1節點:元素、屬性、文本、命名空間、處理命令、注釋以及文檔(根)節點
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>(文檔結點--根節點)
<book>
<title lang="en">Harry Potter</title>(lang="en"--屬性節點)
<author>J K. Rowling</author> (--元素節點)
<year>2005</year>
<price>29.99</price>
</book>
</bookstore>
J K. Rowling,en基本值,基本值是無父或無子的節點
節點關系:
父(parent)每個元素以及屬性都有一個父
子(childrenn)元素節點可有0個,1個或多個子節點
同胞節點(sibling)擁有相同的父的節點
先輩(ancestor)某節點的父,父的父...
后代(descendant)
2.選取節點
/--從根節點選取
//--從匹配選擇的當前節點選擇文檔中的節點,而不考慮他們的位置
.--選取當前節點
..--選取當前節點的父節點
@--選取屬性
練習demo.xml文件
1.選取 書店里 所有書的詳細信息
/bookstore
2.選取 所有書的標題,所有書的分類簽
/bookstore/book/title
3.選取 第一本書的定價
/bookstore/book[1]/price/text()
選取所有價格
/bookstore/book/price/text()
選取價格高於 35 的 price 節點
/bookstore/book[price>35.00]/price
4.選取 最后一本書的作者
/bookstore/book[last()]/author/text()
5.選取 倒數第二本書的 分類標簽
/bookstore/book[last()-1]/@category
6.選取 包含cover屬性的書的標題
/bookstore/book[@cover]/title/text()
7.選取 定價高於35的書的標題
/bookstore/book[price>35.00]/title
8.選取 定價在30到40之間的書的標題
/bookstore/book[price>35.00 and price<40.00]/title
/bookstore/book[price>35.00 and price<40.00]/title/text()
9.選取 作者多於一個的書的標題
/bookstore/book[count(author)>1]/title
10.選取 作者多於一個的書 只列出所有作者名
/bookstore/book[count(author)>1]/author/text()
11.選取 分類不是web 且價格低於40的書的分類屬性值
/bookstore/book[@category!='web' and price<40.00]
12.選取 標題名稱包含X的 所有書的定價值
/bookstore/book[title[contains(text(),'X')]]/price/text()
總結:
查詢對象,層層找
一個元素是一個單獨的個體,它有屬性,有內容值
一個/是絕對路徑,從根元素開始
兩個//是相對路徑,遞歸查找所有子孫
一個. 是當前層,兩個.是上一層
@表示取屬性
*叫通配符,表示任意
[]叫謂語,里面跟的是查詢條件
條件支持算數運算+-*/><,條件支持邏輯運算 and or
取文本值用text(),不加@因為它是個函數
常用函數就幾個,contains是包含,寫法是括號加兩個入參
text()是取文本值,也可以當做一個查詢條件
last()取末尾,倒數第二last()-1
starts-with(),表示以XX開頭,寫法是括號加兩個入參
not(),表示否定,把內容全包進去
count
1.選取 book下所有 后代節點的text值 (提示:用通配符*)
/bookstore/book/@*
2.選取 單個作者 且 分類是web的書的出版年份值
/bookstore/book[count(author)=1 and @category='web']/year/text()
3.選取 單個作者 且 定價大於30的書的分類簽
/bookstore/book[count(author)=1 and price>30]/@category
4.選取 多個作者 且 標題是以X開頭的 書的定價
/bookstore/book[count(author)>1 and contains(title,'X')]/price/text()
5.選取 分類是web 且作者不包括James的所有書的標題
/bookstore/book[@category='web' and not(contains(author,'James'))]/title/text()
https://xinbao.sinosig.com/
//div[@id='navBar']/div[@class='jumbotron']/nav[@class='navbar navbar-default']/div[@class='container paddinglr15']/ul[@class='nav navbar-nav navbar-right']/li[contains(a,'解決方案')]/ul[@class='nav-two navbar-nav-lev2']/li/a/span[@class='titleStyle']
//input[@id='identifyNumber']
//select[@id='identifyType']