真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

XML中的XPath是什么

XML中的XPath是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)魚峰,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

 XPath 是一門在 XML 文檔中查找信息的語言。XPath 用于在 XML 文檔中通過元素和屬性進(jìn)行導(dǎo)航。

什么是 XPath?

  • XPath 使用路徑表達(dá)式在 XML 文檔中進(jìn)行導(dǎo)航

  • XPath 包含一個標(biāo)準(zhǔn)函數(shù)庫

  • XPath 是 XSLT 中的主要元素

  • XPath 是一個 W3C 標(biāo)準(zhǔn)

XPath 路徑表達(dá)式

XPath 使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點(diǎn)或者節(jié)點(diǎn)集。這些路徑表達(dá)式和我們在常規(guī)的電腦文件系統(tǒng)中看到的表達(dá)式非常相似。

XPath 標(biāo)準(zhǔn)函數(shù)

XPath 含有超過 100 個內(nèi)建的函數(shù)。這些函數(shù)用于字符串值、數(shù)值,日期和時間比較、節(jié)點(diǎn)和 QName 處理、序列處理、邏輯值等等。

在 XPath 中,有七種類型的節(jié)點(diǎn):元素、屬性、文本、命名空間、處理指令、注釋以及文檔節(jié)點(diǎn)(或成為根節(jié)點(diǎn))。

XPath 術(shù)語

節(jié)點(diǎn)(Node)

在 XPath 中,有七種類型的節(jié)點(diǎn):元素、屬性、文本、命名空間、處理指令、注釋以及文檔(根)節(jié)點(diǎn)。XML 文檔是被作為節(jié)點(diǎn)樹來對待的。樹的根被稱為文檔節(jié)點(diǎn)或者根節(jié)點(diǎn)。

請看下面這個 XML 文檔:






  Harry Potter
  J K. Rowling 
  2005
  29.99


上面的XML文檔中的節(jié)點(diǎn)例子:

 (文檔節(jié)點(diǎn))
J K. Rowling (元素節(jié)點(diǎn))
lang="en" (屬性節(jié)點(diǎn))

基本值(或稱原子值,Atomic value)

基本值是無父或無子的節(jié)點(diǎn)。

基本值的例子:

J K. Rowling
"en"

項(xiàng)目(Item)

項(xiàng)目是基本值或者節(jié)點(diǎn)。

節(jié)點(diǎn)關(guān)系

父(Parent)

每個元素以及屬性都有一個父。

在下面的例子中,book 元素是 title、author、year 以及 price 元素的父:


  Harry Potter
  J K. Rowling
  2005
  29.99

子(Children)

元素節(jié)點(diǎn)可有零個、一個或多個子。

在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子:


  Harry Potter
  J K. Rowling
  2005
  29.99

同胞(Sibling)

擁有相同的父的節(jié)點(diǎn)

在下面的例子中,title、author、year 以及 price 元素都是同胞:


  Harry Potter
  J K. Rowling
  2005
  29.99

先輩(Ancestor)

某節(jié)點(diǎn)的父、父的父,等等。

在下面的例子中,title 元素的先輩是 book 元素和 bookstore 元素:




  Harry Potter
  J K. Rowling
  2005
  29.99


后代(Descendant)

某個節(jié)點(diǎn)的子,子的子,等等。

在下面的例子中,bookstore的后代是 book、title、author、year 以及 price 元素:




  Harry Potter
  J K. Rowling
  2005
  29.99


XPath Axes(坐標(biāo)軸)

XML 實(shí)例文檔

我們將在下面的例子中使用此 XML 文檔:






  Harry Potter
  29.99



  Learning XML
  39.95


XPath 軸

軸可定義某個相對于當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)集。

軸名稱結(jié)果
ancestor選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)
ancestor-or-self選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)以及當(dāng)前節(jié)點(diǎn)本身
attribute選取當(dāng)前節(jié)點(diǎn)的所有屬性
child選取當(dāng)前節(jié)點(diǎn)的所有子元素。
descendant選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)。
descendant-or-self選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)以及當(dāng)前節(jié)點(diǎn)本身。
following選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn)。
namespace選取當(dāng)前節(jié)點(diǎn)的所有命名空間節(jié)點(diǎn)
parent選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。
preceding選取文檔中當(dāng)前節(jié)點(diǎn)的開始標(biāo)簽之前的所有節(jié)點(diǎn)。
preceding-sibling選取當(dāng)前節(jié)點(diǎn)之前的所有同級節(jié)點(diǎn)。
self選取當(dāng)前節(jié)點(diǎn)。

位置路徑表達(dá)式

位置路徑可以是絕對的,也可以是相對的。

絕對路徑起始于正斜杠( / ),而相對路徑不會這樣。在兩種情況中,位置路徑均包括一個或多個步,每個步均被斜杠分割:

絕對位置路徑:

/step/step/...

相對位置路徑:

step/step/...

每個步均根據(jù)當(dāng)前節(jié)點(diǎn)集之中的節(jié)點(diǎn)來進(jìn)行計(jì)算。

步(step)包括:

  • 軸(axis)

  • 定義所選節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)之間的樹關(guān)系

  • 節(jié)點(diǎn)測試(node-test)

  • 識別某個軸內(nèi)部的節(jié)點(diǎn)

  • 零個或者更多謂語(predicate)

  • 更深入地提煉所選的節(jié)點(diǎn)集

步的語法:

軸名稱::節(jié)點(diǎn)測試[謂語]

實(shí)例

例子結(jié)果
child::book選取所有屬于當(dāng)前節(jié)點(diǎn)的子元素的 book 節(jié)點(diǎn)
attribute::lang選取當(dāng)前節(jié)點(diǎn)的 lang 屬性
child::*選取當(dāng)前節(jié)點(diǎn)的所有子元素
attribute::*選取當(dāng)前節(jié)點(diǎn)的所有屬性
child::text()選取當(dāng)前節(jié)點(diǎn)的所有文本子節(jié)點(diǎn)
child::node()選取當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)
descendant::book選取當(dāng)前節(jié)點(diǎn)的所有 book 后代
ancestor::book選擇當(dāng)前節(jié)點(diǎn)的所有 book 先輩
ancestor-or-self::book選取當(dāng)前節(jié)點(diǎn)的所有book先輩以及當(dāng)前節(jié)點(diǎn)(假如此節(jié)點(diǎn)是book節(jié)點(diǎn)的話)
child::*/child::price選取當(dāng)前節(jié)點(diǎn)的所有 price 孫。

XPath 運(yùn)算符

XPath 表達(dá)式可返回節(jié)點(diǎn)集、字符串、邏輯值以及數(shù)字。

XPath 運(yùn)算符

下面列出了可用在 XPath 表達(dá)式中的運(yùn)算符:

運(yùn)算符描述實(shí)例返回值
|計(jì)算兩個節(jié)點(diǎn)集//book | //cd返回所有帶有 book 和 cd 元素的節(jié)點(diǎn)集
+加法6 + 410
-減法6 - 42
*乘法6 * 424
p除法8 p 42
=等于price=9.80

如果 price 是 9.80,則返回 true。

如果 price 是 9.90,則返回 fasle。

!=不等于price!=9.80

如果 price 是 9.90,則返回 true。

如果 price 是 9.80,則返回 fasle。

<小于price<9.80

如果 price 是 9.00,則返回 true。

如果 price 是 9.90,則返回 fasle。

<=小于或等于price<=9.80

如果 price 是 9.00,則返回 true。

如果 price 是 9.90,則返回 fasle。

>大于price>9.80

如果 price 是 9.90,則返回 true。

如果 price 是 9.80,則返回 fasle。

>=大于或等于price>=9.80

如果 price 是 9.90,則返回 true。

如果 price 是 9.70,則返回 fasle。

orprice=9.80 or price=9.70

如果 price 是 9.80,則返回 true。

如果 price 是 9.50,則返回 fasle。

andprice>9.00 and price<9.90

如果 price 是 9.80,則返回 true。

如果 price 是 8.50,則返回 fasle。

mod計(jì)算除法的余數(shù)5 mod 21

XML實(shí)例文檔

我們將在下面的例子中使用這個 XML 文檔:

"books.xml" :






  Everyday Italian
  Giada De Laurentiis
  2005
  30.00



  Harry Potter
  J K. Rowling
  2005
  29.99



  XQuery Kick Start
  James McGovern
  Per Bothner
  Kurt Cagle
  James Linn
  Vaidyanathan Nagarajan
  2003
  49.99



  Learning XML
  Erik T. Ray
  2003
  39.95


節(jié)點(diǎn)選取

我們將使用微軟的 XML DOM 對象來載入 XML 文檔,并使用 selectNodes() 函數(shù)從 XML 文檔選取節(jié)點(diǎn):

set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("books.xml")

xmlDoc.selectNodes(路徑表達(dá)式)

選取所有的 book 節(jié)點(diǎn)

下面的這個例子選取了 bookstore 元素下所有的 book 節(jié)點(diǎn):

xmlDoc.selectNodes("/bookstore/book")

選取第一個 book 節(jié)點(diǎn)

下面的例子僅選取 bookstore 元素下第一個 book 節(jié)點(diǎn):

xmlDoc.selectNodes("/bookstore/book[0]")

選取 price

下面的例子從所有的 price 節(jié)點(diǎn)選取文本:

xmlDoc.selectNodes("/bookstore/book/price/text()")

選取價格高于 35 的 price 價格

下面的例子會選取所有價格高于 35 的 price 節(jié)點(diǎn):

xmlDoc.selectNodes("/bookstore/book[price>35]/price")

選取價格高于 35 的 title 節(jié)點(diǎn)

下面的例子會選取所有價格高于 35 的 title 節(jié)點(diǎn):

xmlDoc.selectNodes("/bookstore/book[price>35]/title")

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。


名稱欄目:XML中的XPath是什么
分享地址:http://weahome.cn/article/jjsjee.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部