xpath簡介_動力節點Java學院整理_XML示例

來源:腳本之家  責任編輯:小易  

function loadXMLDoc(dname){if(window.XMLHttpRequest){xhttp=new XMLHttpRequest();}else{xhttp=new ActiveXObject("Microsoft.XMLHTTP");}xhttp.open("GET",dname,false);xhttp.send("");return xhttp.responseXML;}這段代碼是產生一個 ajax 請求,并發送該請求到 dname 這個URL,并采用同步模式發送(等待服務器應答),并將應答返回;主代碼:xml=loadXMLDoc("books.xml");加載 books.xmlpath="/bookstore/book[1]/title;解析該xml內容的xpath為/bookstore 節點的 第1本 book 的 標題code for IEif(window.ActiveXObject){xml.setProperty("SelectionLanguagewww.13333515.buzz防采集請勿采集本網。

簡單說,xpath就是選擇XML文件中節點的方法。

sel.xpath()得到的依舊是一個SelectorList 參看原文檔 xpath(query) Find nodes matching the xpath query and return the result as a SelectorList instance with all elements flattened.List

所謂節點(node),就是XML文件的最小構成單位,一共分成7種。

String xpath=\"/html/body/form/div/table/a\";List<Node>trNodes=doc.selectNodes(xpath);for(int i=1;i();i+){ Element trElement=(Element)trNodes.get(i);List<Element>tdList=trElement.elements();

- element(元素節點)

/a[contains(@id,'abc')][2] 用這個xpath 就會找不到東西,因為都是獨生子女. 你要選中第二個老大,xpath 要這樣寫 (/span/a)[2] 這個方式在很多地方有效,但在Selenium 中好像無效.

- attribute(屬性節點)

不是有選擇父元素的軸語法么?AAA/parent: String xpath=\"/html/body/form/div/table/a\";List<Node>trNodes=doc.selectNodes(xpath);for(int i=1;i();i+){ Element trElement=(Element)trNodes.

- text (文本節點)

1、XmlNodeList list=myDoc.SelectNodes(\"/root/list/catalog[@orders>'3'and catalogtype='0']\");2、XmlNodeList list=myDoc.SelectNodes(\"/root/list/catalog[@catalogname='軍事新聞']\");3、

- namespace (名稱空間節點)

- processing-instruction (處理命令節點)

- comment (注釋節點)

- root (根節點)

xpath可以用來選擇這7種節點。不過,下面的筆記只涉及最常用的第一種element(元素節點),因此可以將下文中的節點和元素視為同義詞。

一、xpath表達式的基本格式

xpath通過"路徑表達式"(Path Expression)來選擇節點。在形式上,"路徑表達式"與傳統的文件系統非常類似。

# 斜杠(/)作為路徑內部的分割符。

# 同一個節點有絕對路徑和相對路徑兩種寫法。

# 絕對路徑(absolute path)必須用"/"起首,后面緊跟根節點,比如/step/step/...。

# 相對路徑(relative path)則是除了絕對路徑以外的其他寫法,比如 step/step,也就是不使用"/"起首。

# "."表示當前節點。

# ".."表示當前節點的父節點

二、選擇節點的基本規則

- nodename(節點名稱):表示選擇該節點的所有子節點

- "/":表示選擇根節點

- "http://":表示選擇任意位置的某個節點

- "@": 表示選擇某個屬性

三、選擇節點的實例

先看一個XML實例文檔。

<?xml version="1.0" encoding="ISO-8859-1"?><bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book></bookstore>

[例1]

bookstore :選取 bookstore 元素的所有子節點。

[例2]

/bookstore :選取根節點bookstore,這是絕對路徑寫法。

[例3]

bookstore/book :選取所有屬于 bookstore 的子元素的 book元素,這是相對路徑寫法。

[例4]

//book :選擇所有 book 子元素,而不管它們在文檔中的位置。

[例5]

bookstore//book :選擇所有屬于 bookstore 元素的后代的 book 元素,而不管它們位于 bookstore 之下的什么位置。

[例6]

//@lang :選取所有名為 lang 的屬性。

四、xpath的謂語條件(Predicate)

所謂"謂語條件",就是對路徑表達式的附加條件。

所有的條件,都寫在方括號"[]"中,表示對節點進行進一步的篩選。

[例7]

/bookstore/book[1] :表示選擇bookstore的第一個book子元素。

[例8]

/bookstore/book[last()] :表示選擇bookstore的最后一個book子元素。

[例9]

/bookstore/book[last()-1] :表示選擇bookstore的倒數第二個book子元素。

[例10]

/bookstore/book[position()<3] :表示選擇bookstore的前兩個book子元素。

[例11]

//title[@lang] :表示選擇所有具有lang屬性的title節點。

[例12]

//title[@lang='eng'] :表示選擇所有lang屬性的值等于"eng"的title節點。

[例13]

/bookstore/book[price] :表示選擇bookstore的book子元素,且被選中的book元素必須帶有price子元素。

[例14]

/bookstore/book[price>35.00] :表示選擇bookstore的book子元素,且被選中的book元素的price子元素值必須大于35。

[例15]

/bookstore/book[price>35.00]/title :表示在例14結果集中,選擇title子元素。

[例16]

/bookstore/book/price[.>35.00] :表示選擇值大于35的"/bookstore/book"的price子元素。

五、通配符

# "*"表示匹配任何元素節點。

# "@*"表示匹配任何屬性值。

# node()表示匹配任何類型的節點。

[例17]

//* :選擇文檔中的所有元素節點。

[例18]

/*/* :表示選擇所有第二層的元素節點。

[例19]

/bookstore/* :表示選擇bookstore的所有元素子節點。

[例20]

//title[@*] :表示選擇所有帶有屬性的title元素。

六、選擇多個路徑

用"|"選擇多個并列的路徑。

[例21]

//book/title | //book/price :表示同時選擇book元素的title子元素和price子元素。

很簡單,教你一招:這是你的html文件,我命名為test.html然后用xpath匹配:123456import lxml.etreehtml=lxml.etree.parse("test.html")res=html.xpath("/a[@heaf='baidu.com']")info=res[0].xpath('string(.)')print(info)運行結果:內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • java通過xpath解析xml性能比較詳解
  • java selenium xpath 定位實現方法
  • java使用xpath解析xml示例分享
  • java使用xpath和dom4j解析xml
  • 深入xpath的詳解以及java示例代碼分析
  • java編程之xpath介紹
  • xml中顯示html的小技巧
  • xpath簡介_動力節點java學院整理
  • powerbuilder(pb)中 xml的應用一例
  • 用xslt將xml解析成xhtml的代碼
  • 在服務器端的xslt過程中的編碼問題
  • 使用xsl將xml文檔中的cdata注釋輸出為html文本
  • xml 增、刪、改和查示例
  • 本站用的rss輸出
  • asp下利用xml打包網站文件
  • 氣象 xml 數據源應用程序開發指南-內容目錄
  • xpath取一個節點下的所有文字
  • xpath 詳解!
  • XPATH是什么意思
  • xpath獲取特定節點下文本值的問題
  • 如何利用xpath獲取節點中html文本
  • Xpath 怎么獲取元素節點的名字?
  • Selenium中關于XPath中節點后面[1]的詭異問題?
  • xpath 如何獲取父節點的名字?
  • XML XPATH
  • java XPath怎么獲取節點屬性的值
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全xml基礎xml示例wml教程首頁xml/rssxml示例java通過xpath解析xml性能比較詳解java selenium xpath 定位實現方法java使用xpath解析xml示例分享java使用xpath和dom4j解析xml深入xpath的詳解以及java示例代碼分析java編程之xpath介紹xml中顯示html的小技巧xpath簡介_動力節點java學院整理powerbuilder(pb)中 xml的應用一例用xslt將xml解析成xhtml的代碼在服務器端的xslt過程中的編碼問題使用xsl將xml文檔中的cdata注釋輸出為html文本xml 增、刪、改和查示例本站用的rss輸出asp下利用xml打包網站文件氣象 xml 數據源應用程序開發指南-內容目錄powerbuilder(pb)中 xml的應用一utf8轉成gb2312亂碼問題解決方案javascript xml xsl取值及數據修讀大數據量的xml文件的讀取問題用xslt將xml解析成xhtml的代碼jscript與vbscript 操作xml元素屬一個用xslt樣式將xml解析為xhtml使用spry輕松將xml數據顯示到htmxml 增、刪、改和查示例asp下利用xml打包網站文件在服務器端的xslt過程中的編碼問題powerbuilder(pb)中 xml的應用一例本站用的rss輸出讀寫xml文件的2個小函數javascript xml xsl取值及數據修改編寫xml沒有代碼提示的解決方法使用xsl將xml文檔中的cdata注釋輸出為htmasp下利用xml打包網站文件讀大數據量的xml文件的讀取問題asp讀取xml文件和記數
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果