主頁(yè) > 知識(shí)庫(kù) > XPath入門(mén) - XSL教程 - 3

XPath入門(mén) - XSL教程 - 3

熱門(mén)標(biāo)簽:隨州外呼調(diào)研系統(tǒng) 微信地圖標(biāo)注合并了 如何修改多個(gè)百度地圖標(biāo)注 高德地圖地圖標(biāo)注服務(wù)中心 本地電話機(jī)器人 南寧網(wǎng)絡(luò)外呼系統(tǒng)運(yùn)營(yíng)商 400電話辦理包年 r語(yǔ)言數(shù)據(jù)可視化地圖標(biāo)注 東營(yíng)電銷(xiāo)
什么是XPath
  XPath(可擴(kuò)展路徑) 是給 XSL 轉(zhuǎn)換[XSLT]和 XPointer [XPointer]的共享功能提供一個(gè)共用的句法及語(yǔ)義的結(jié)果。XPath的主要的目是用于對(duì) XML 文檔元件尋址。在支持這個(gè)主要目的的同時(shí),它也為字符串,數(shù)字和布爾的操作提供了基本手段。XPath 使用簡(jiǎn)明的、非 XML 句法以便於在 URIs 和 XML 屬性值以?xún)?nèi)使用 XPath,XPath 對(duì) XML 文檔的抽象的、邏輯的結(jié)構(gòu)而非它的表面句法進(jìn)行操作,XPath 的名字源于它在 URL 中用作對(duì) XML 文檔的層次的結(jié)構(gòu)進(jìn)行導(dǎo)航一個(gè)路徑標(biāo)志。
除了用做尋址外,XPath 也被設(shè)計(jì)成以便它有能被用于匹配的一個(gè)自然的子集(測(cè)試一個(gè)節(jié)點(diǎn)是否匹配一個(gè)模式);XSLT中描述了 XPath 在這方面的使用。 
  XPath 將一個(gè) XML 文檔建模成為一棵節(jié)點(diǎn)樹(shù),有不同類(lèi)型的節(jié)點(diǎn),包括元素節(jié)點(diǎn),屬性節(jié)點(diǎn)和正文節(jié)點(diǎn)。XPath 定義了一種方法來(lái)計(jì)算每類(lèi)的節(jié)點(diǎn)的字串值。一些節(jié)點(diǎn)的類(lèi)型也有名字。XPath 充分支持 XML 命名空間[XML Names]。這樣,節(jié)點(diǎn)的名字被建模成由一個(gè)局城部分和可能為空的命名空間 URI 組成的對(duì);這被稱(chēng)為擴(kuò)展名。

XPath返回的類(lèi)型
  1:節(jié)點(diǎn)集合(無(wú)序的、無(wú)重復(fù)的節(jié)點(diǎn)集合) 
  2:布爾(真或假) 
  3:數(shù)字(一個(gè)浮點(diǎn)數(shù)字) 
  4:字符串(UCS 字符的順序) 
地址路徑
地址路徑是Xpath用于定位的一條語(yǔ)句,基本的語(yǔ)法如下:
/ 選擇XML文檔的根結(jié)點(diǎn) 
/* 選擇根結(jié)點(diǎn)的所有子節(jié)點(diǎn),
*匹配任意子節(jié)點(diǎn) 
/x 選擇根結(jié)點(diǎn)的所有x元素 
//book 選擇根結(jié)點(diǎn)的所有后代節(jié)點(diǎn)中的book元素 
//@id 選擇含有id屬性的子節(jié)點(diǎn) 
para[1] 選擇上下文節(jié)點(diǎn)的第一個(gè) para 孩子
//vendor[@id='id1_2']/book 選擇符合“屬性id='id1_2'”的所有book元素 
/bib/vendor/book[year>2002] 選擇符合“元素year>'2002'”的所有book元素 
text() 選擇上下文節(jié)點(diǎn)的所有的正文節(jié)點(diǎn)孩子
@name 選擇上下文節(jié)點(diǎn)的 name 屬性
@* 選擇上下文節(jié)點(diǎn)的所有的屬性
*/para 選擇上下文節(jié)點(diǎn)的所有的 para 孫子
/doc/chapter[5]/section[2] 選擇doc的第五個(gè) chapter 的第二個(gè) section
.//para 選擇上下文節(jié)點(diǎn)的 para 元素子孫
para[@type="warning"] 選擇的上下文節(jié)點(diǎn)的所有的有屬性 type 且值為 warning 的 para 孩子
chapter[title="Introduction"] 選擇上下文節(jié)點(diǎn)的 chapter 孩子如果它有一個(gè)或多個(gè) title 孩子且字串值為 Introduction
employee[@secretary and @assistant] 選擇上下文節(jié)點(diǎn)的所有既有 secretary 屬性又有 assistant 屬性的 employee 孩子
chpater[title] 選擇的上下文節(jié)點(diǎn)中有一個(gè)或一個(gè)以上 title 孩子的 chpater 孩子
1:child 是缺省軸。例如,地址路徑 div/para 是 child:iv/child::para 的縮寫(xiě)。
2:屬性也有縮寫(xiě)形式: attribute:: 能被縮寫(xiě)成 @。例如,地址路徑 para[@type="warning"] 為 child::para[attribute::type="warning"] 的縮寫(xiě),也就是選擇有 type 屬性且屬性值為 warning 的 para 孩子。
3:// 是 /descendant-or-self::node()/ 的縮寫(xiě)。例如,//para 是 /descendant-or-self::node()/child::para 的縮寫(xiě),因此選擇文檔中所有的 para 元素(即使 para 元素是文檔元素,也會(huì)被 //para 所選擇,因?yàn)槲臋n元素是根節(jié)點(diǎn)的孩子); div//para 是 div/descendant-or-self::node()/child::para 的縮寫(xiě),因此將選擇 div 孩子的所有 para 子孫
核心函數(shù)庫(kù)
節(jié)點(diǎn)集合函數(shù)
last()返回一個(gè)數(shù)字,該數(shù)字等于從表達(dá)式求值上下文中的上下文大小 
position()函數(shù)返回一個(gè)數(shù)字,該數(shù)字等於從表達(dá)式求值上下文中的上下文位置
count(node-set)函數(shù)返回在參數(shù)node-set中節(jié)點(diǎn)的個(gè)數(shù)
id(object)通過(guò)元素的唯一的ID選擇他們
local-name(node-set?)返回一個(gè)節(jié)點(diǎn)的擴(kuò)展名的局域部分
namespace-uri(node-set?)返回依照文檔順序參數(shù)節(jié)點(diǎn)集合中的第一個(gè)節(jié)點(diǎn)的擴(kuò)展名的命名空間 URI,除了元素節(jié)點(diǎn)和屬性節(jié)點(diǎn)外函數(shù) namespace-uri 返回的字符串將為空
name(node-set?)返回一個(gè)字符串,字符串包含一個(gè)QName,它代表依照文檔順序參數(shù)節(jié)點(diǎn)集合中的第一個(gè)節(jié)點(diǎn)的擴(kuò)展名,除了元素節(jié)點(diǎn)和屬性節(jié)點(diǎn)外,由 name 函數(shù)返回的字符串將與 local-name 函數(shù)返回的字符串一樣
字符串函數(shù)
string(object?)函數(shù)將對(duì)象轉(zhuǎn)換成字符.
concat(string, string, string*) 函數(shù)返回它的參數(shù)的聯(lián)結(jié)
starts-with(string, string)如果第一個(gè)字符串參數(shù)以第二個(gè)字符串參數(shù)起頭,starts-with 函數(shù)返回真,否則,返回假
contains(string, string)如果第一個(gè)字符串參數(shù)包含第二個(gè)字符串參數(shù),contains 函數(shù)返回真,否則,返回假
substring-before(string, string)函數(shù)返回第一個(gè)字符串參數(shù)在第二個(gè)參數(shù)首次出現(xiàn)之前的子字符串,或者,如果第一個(gè)字符串參數(shù)不包含第二個(gè)字符串參數(shù)則返回空字符串。例如,substring-before("1999/04/01","/") 返回 1999
substring-before(string, string)函數(shù)返回第一個(gè)字符串參數(shù)在第二個(gè)參數(shù)首次出現(xiàn)之前的子字符串,或者,如果第一個(gè)字符串參數(shù)不包含第二個(gè)字符串參數(shù)則返回空字符串。例如,substring-before("1999/04/01","/") 返回 1999
substring( string , number , number? )函數(shù)返回第一個(gè)字符串參數(shù)從第二個(gè)參數(shù)所指定的位置開(kāi)始,以第三個(gè)參數(shù)為長(zhǎng)度的子字符串。例如, substring("12345",2,3) 返回 "234"。如果沒(méi)有第三個(gè)參數(shù),則返回從第二個(gè)參數(shù)所指定的位置開(kāi)始直到結(jié)束。例如, substring("12345",2) 返回"2345"
string-length( string? )返回字符串中字符的個(gè)數(shù)
normalize-space(string?)函數(shù)返回空白符規(guī)范化 后的參數(shù)字符串,該規(guī)范化是清除領(lǐng)頭及結(jié)尾的空白字以及用一個(gè)空白符替換連續(xù)的空白符
translate(string, string, string)函數(shù)返回第一個(gè)參數(shù)的字符串,其中有在第二個(gè)參數(shù)中出現(xiàn)的字符都被在第三個(gè)參數(shù)中相對(duì)應(yīng)位置的字符所替換。例如,translate("bar","abc","ABC") 返回字符串 BAr。如果,第二個(gè)參數(shù)里的字符在第三個(gè)參數(shù)的相對(duì)應(yīng)位置沒(méi)有字符(因?yàn)榈诙€(gè)參數(shù)里的字符串比第三個(gè)參數(shù)的字符串長(zhǎng)),那么,第一個(gè)參數(shù)里的那個(gè)字符將被移去。例如,translate("--aaa--","abc-","ABC") 返回 "AAA"。如果在第二個(gè)參數(shù)里的字符出現(xiàn)超過(guò)一次,那么,第一次的出現(xiàn)決定替換的字符。如果第三個(gè)參數(shù)里的字符串比第二個(gè)參數(shù)的字符串長(zhǎng), 那么,多余的字符將被忽略
布爾函數(shù)
boolean(object)
not(boolean)
true()
false()
lang(string)
數(shù)字函數(shù)
number(object?)函數(shù)參數(shù)依下列各項(xiàng)轉(zhuǎn)換成數(shù)字
sum(node-set)對(duì)於在參數(shù)節(jié)點(diǎn)集合的每個(gè)節(jié)點(diǎn),sum 函數(shù)返回節(jié)點(diǎn)字串值轉(zhuǎn)換成數(shù)字后的和
floor(number)函數(shù)返回不大於參數(shù)的整數(shù)的最大數(shù) (最接近于正無(wú)窮大)
ceiling(number)函數(shù)返回不小於參數(shù)的整數(shù)的最小數(shù) (最接近于負(fù)無(wú)窮大)
round(number) 函數(shù)返回最接近于參數(shù)的整數(shù)。如果有兩個(gè)這樣的數(shù)字,那么,返回最接近于正無(wú)窮大的那個(gè)。如果參數(shù)是 NaN,那么返回 NaN。如果參數(shù)是正無(wú)窮大,那么返回正無(wú)窮大。如果參數(shù)是負(fù)無(wú)窮大,那么返回負(fù)無(wú)窮大。如果參數(shù)是正零,那么返回正零。如果參數(shù)是負(fù)零,那么返回負(fù)零。如果參數(shù)小於零,但大於或等於 -0.5 ,那么返回負(fù)零。
參照規(guī)范
XML See See http://www.w3.org/TR/1998/REC-xml-19980210
XML Nameshttp://www.w3.org/TR/REC-xml-names
XSLT See http://www.w3.org/TR/xslt
部分參照XML 路徑語(yǔ)言(XPath) 版本 1.0
您可能感興趣的文章:
  • xpath的數(shù)據(jù)和節(jié)點(diǎn)類(lèi)型以及XPath中節(jié)點(diǎn)匹配的基本方法
  • 使用HtmlAgilityPack XPath 表達(dá)式抓取博客園數(shù)據(jù)的實(shí)現(xiàn)代碼
  • JQuery 選擇器 xpath 語(yǔ)法應(yīng)用
  • DOM XPATH獲取img src值的query
  • 簡(jiǎn)單了解JavaScript操作XPath的一些基本方法

標(biāo)簽:黃石 寧夏 拉薩 果洛 益陽(yáng) 德州 宿遷 西雙版納

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XPath入門(mén) - XSL教程 - 3》,本文關(guān)鍵詞  XPath,入門(mén),XSL,教程,XPath,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《XPath入門(mén) - XSL教程 - 3》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于XPath入門(mén) - XSL教程 - 3的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章