亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

如何使用XPath入門

2024-09-05 20:54:43
字體:
來源:轉載
供稿:網友
什么是XPath

XPath(可擴展路徑) 是給 XSL 轉換[XSLT]和 XPointer [XPointer]的共享功能提供一個共用的句法及語義的結果。XPath的主要的目是用于對 XML 文檔元件尋址。在支持這個主要目的的同時,它也為字符串,數字和布爾的操作提供了基本手段。XPath 使用簡明的、非 XML 句法以便於在 URIs 和 XML 屬性值以內使用 XPath,XPath 對 XML 文檔的抽象的、邏輯的結構而非它的表面句法進行操作,XPath 的名字源于它在 URL 中用作對 XML 文檔的層次的結構進行導航一個路徑標志。
除了用做尋址外,XPath 也被設計成以便它有能被用于匹配的一個自然的子集(測試一個節點是否匹配一個模式);XSLT中描述了 XPath 在這方面的使用。
XPath 將一個 XML 文檔建模成為一棵節點樹,有不同類型的節點,包括元素節點,屬性節點和正文節點。XPath 定義了一種方法來計算每類的節點的字串值。一些節點的類型也有名字。XPath 充分支持 XML 命名空間[XML Names]。這樣,節點的名字被建模成由一個局城部分和可能為空的命名空間 URI 組成的對;這被稱為擴展名。

XPath返回的類型

1:節點集合(無序的、無重復的節點集合)
2:布爾(真或假)
3:數字(一個浮點數字)
4:字符串(UCS 字符的順序)

地址路徑

 
地址路徑是Xpath用于定位的一條語句
,基本的語法如下:
/ 選擇XML文檔的根結點
/* 選擇根結點的所有子節點,
*匹配任意子節點
/x 選擇根結點的所有x元素
//book 選擇根結點的所有后代節點中的book元素
//@id 選擇含有id屬性的子節點
para[1] 選擇上下文節點的第一個 para 孩子
//vendor[@id='id1_2']/book 選擇符合“屬性id=’id1_2’”的所有book元素
/bib/vendor/book[year>2002] 選擇符合“元素year>’2002’”的所有book元素
text() 選擇上下文節點的所有的正文節點孩子
@name 選擇上下文節點的 name 屬性
@* 選擇上下文節點的所有的屬性
*/para 選擇上下文節點的所有的 para 孫子
/doc/chapter[5]/section[2] 選擇doc的第五個 chapter 的第二個 section
.//para 選擇上下文節點的 para 元素子孫
para[@type="warning"] 選擇的上下文節點的所有的有屬性 type 且值為 warning 的 para 孩子
chapter[title="Introduction"] 選擇上下文節點的 chapter 孩子如果它有一個或多個 title 孩子且字串值為 Introduction
employee[@secretary and @assistant] 選擇上下文節點的所有既有 secretary 屬性又有 assistant 屬性的 employee 孩子
chpater[title] 選擇的上下文節點中有一個或一個以上 title 孩子的 chpater 孩子


1:child 是缺省軸。例如,地址路徑 div/para 是 child:iv/child::para 的縮寫。
2:屬性也有縮寫形式: attribute:: 能被縮寫成 @。例如,地址路徑 para[@type="warning"] 為 child::para[attribute::type="warning"] 的縮寫,也就是選擇有 type 屬性且屬性值為 warning 的 para 孩子。
3:// 是 /descendant-or-self::node()/ 的縮寫。例如,//para 是 /descendant-or-self::node()/child::para 的縮寫,因此選擇文檔中所有的 para 元素(即使 para 元素是文檔元素,也會被 //para 所選擇,因為文檔元素是根節點的孩子); div//para 是 div/descendant-or-self::node()/child::para 的縮寫,因此將選擇 div 孩子的所有 para 子孫

核心函數庫

節點集合函數

last()返回一個數字,該數字等于從表達式求值上下文中的上下文大小
position()函數返回一個數字,該數字等於從表達式求值上下文中的上下文位置
count(node-set)函數返回在參數node-set中節點的個數
id(object)通過元素的唯一的ID選擇他們
local-name(node-set?)返回一個節點的擴展名的局域部分
namespace-uri(node-set?)返回依照文檔順序參數節點集合中的第一個節點的擴展名的命名空間 URI,除了元素節點和屬性節點外函數 namespace-uri 返回的字符串將為空
name(node-set?)返回一個字符串,字符串包含一個QName,它代表依照文檔順序參數節點集合中的第一個節點的擴展名,除了元素節點和屬性節點外,由 name 函數返回的字符串將與 local-name 函數返回的字符串一樣

字符串函數

string(object?)函數將對象轉換成字符.
concat(string, string, string*) 函數返回它的參數的聯結
starts-with(string, string)如果第一個字符串參數以第二個字符串參數起頭,starts-with 函數返回真,否則,返回假
contains(string, string)如果第一個字符串參數包含第二個字符串參數,contains 函數返回真,否則,返回假
substring-before(string, string)函數返回第一個字符串參數在第二個參數首次出現之前的子字符串,或者,如果第一個字符串參數不包含第二個字符串參數則返回空字符串。例如,substring-before("1999/04/01","/") 返回 1999
substring-before(string, string)函數返回第一個字符串參數在第二個參數首次出現之前的子字符串,或者,如果第一個字符串參數不包含第二個字符串參數則返回空字符串。例如,substring-before("1999/04/01","/") 返回 1999
substring( string , number , number? )函數返回第一個字符串參數從第二個參數所指定的位置開始,以第三個參數為長度的子字符串。例如, substring("12345",2,3) 返回 "234"。如果沒有第三個參數,則返回從第二個參數所指定的位置開始直到結束。例如, substring("12345",2) 返回"2345"
string-length( string? )返回字符串中字符的個數
normalize-space(string?)函數返回空白符規范化 后的參數字符串,該規范化是清除領頭及結尾的空白字以及用一個空白符替換連續的空白符
translate(string, string, string)函數返回第一個參數的字符串,其中有在第二個參數中出現的字符都被在第三個參數中相對應位置的字符所替換。例如,translate("bar","abc","ABC") 返回字符串 BAr。如果,第二個參數里的字符在第三個參數的相對應位置沒有字符(因為第二個參數里的字符串比第三個參數的字符串長),那么,第一個參數里的那個字符將被移去。例如,translate("--aaa--","abc-","ABC") 返回 "AAA"。如果在第二個參數里的字符出現超過一次,那么,第一次的出現決定替換的字符。如果第三個參數里的字符串比第二個參數的字符串長, 那么,多余的字符將被忽略

布爾函數
boolean(object)
not(boolean)
true()
false()
lang(string)

數字函數
number(object?)函數參數依下列各項轉換成數字
sum(node-set)對於在參數節點集合的每個節點,sum 函數返回節點字串值轉換成數字后的和
floor(number)函數返回不大於參數的整數的最大數 (最接近于正無窮大)
ceiling(number)函數返回不小於參數的整數的最小數 (最接近于負無窮大)
round(number) 函數返回最接近于參數的整數。如果有兩個這樣的數字,那么,返回最接近于正無窮大的那個。如果參數是 NaN,那么返回 NaN。如果參數是正無窮大,那么返回正無窮大。如果參數是負無窮大,那么返回負無窮大。如果參數是正零,那么返回正零。如果參數是負零,那么返回負零。如果參數小於零,但大於或等於 -0.5 ,那么返回負零。

參照規范

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
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人在线免费| 欧美极品少妇xxxxⅹ免费视频| 国产精品久久久久久久久久新婚| 欧美日韩国产成人| 一本大道久久加勒比香蕉| 国产精品美女www爽爽爽视频| 久久久av亚洲男天堂| 国产精品日韩欧美| 久久夜精品va视频免费观看| 亚洲成人免费网站| 中文字幕在线国产精品| 色偷偷偷综合中文字幕;dd| 2020久久国产精品| 91av福利视频| 亚洲精品福利在线观看| 久久中文字幕一区| 久久免费高清视频| 成人在线中文字幕| 国产精品高潮呻吟久久av无限| 亚洲福利视频网| 亚洲一区免费网站| 91精品啪在线观看麻豆免费| 日韩视频免费中文字幕| 久久亚洲国产精品| 国产一区二区欧美日韩| 亚洲精品之草原avav久久| 伊人久久久久久久久久久久久| 欧美一区在线直播| 久久精品青青大伊人av| 国产91成人在在线播放| yw.139尤物在线精品视频| 九九热精品视频| 日韩av免费看| 久久免费视频这里只有精品| 国产精品美女www爽爽爽视频| 中文字幕一精品亚洲无线一区| 成人黄色在线观看| 日韩成人高清在线| 亚洲iv一区二区三区| 97精品一区二区视频在线观看| 亚洲夜晚福利在线观看| 中文亚洲视频在线| 日韩中文字幕在线视频播放| 亚洲国产成人精品久久久国产成人一区| 一区二区三区久久精品| 国产亚洲aⅴaaaaaa毛片| 日韩av在线最新| 久久综合五月天| 一本色道久久88综合亚洲精品ⅰ| 亚洲精品美女免费| 欧美日在线观看| 日韩在线观看网址| 在线播放国产一区中文字幕剧情欧美| 4p变态网欧美系列| 亚洲欧美制服丝袜| 久久久亚洲国产| 啊v视频在线一区二区三区| 欧美高清性猛交| 成人激情av在线| 国产999在线观看| 日韩在线视频线视频免费网站| 国产精自产拍久久久久久| 欧美最顶级丰满的aⅴ艳星| 日韩在线观看电影| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩国产精品一区| 日韩久久免费电影| 在线观看精品国产视频| 日韩欧美a级成人黄色| 国产精品一区二区女厕厕| 亚洲国产成人精品女人久久久| 日韩在线高清视频| 亚洲欧洲一区二区三区在线观看| 97精品久久久中文字幕免费| 欧美国产日韩在线| 国产日韩欧美日韩| 国产精品入口日韩视频大尺度| 91精品国产成人| 欧美猛少妇色xxxxx| 欧美激情视频在线免费观看 欧美视频免费一| 精品国产老师黑色丝袜高跟鞋| 狠狠综合久久av一区二区小说| 欧美亚洲伦理www| 中文字幕日本精品| 日本午夜在线亚洲.国产| 亚洲国产精品va在线| 亚洲精品456在线播放狼人| 欧洲亚洲免费在线| 日本午夜精品理论片a级appf发布| 中文综合在线观看| 97超视频免费观看| 中文字幕视频在线免费欧美日韩综合在线看| 欧美在线一区二区三区四| 欧美电影免费观看高清完整| 日韩电影中文字幕在线| 人体精品一二三区| 欧美噜噜久久久xxx| 欧美另类69精品久久久久9999| 在线日韩中文字幕| 日韩av最新在线观看| 亚洲成人精品视频| 国产精品一区二区久久国产| 国内精品视频在线| 91亚洲精华国产精华| 国产91热爆ts人妖在线| 欧美日韩一区二区精品| 国产精品久久久久久久久免费| 成人激情电影一区二区| 伊人伊人伊人久久| 黑人巨大精品欧美一区二区一视频| 午夜剧场成人观在线视频免费观看| 日韩高清av一区二区三区| 欧美俄罗斯性视频| 97碰在线观看| 成人激情视频免费在线| 91在线观看免费高清完整版在线观看| 欧美黑人极品猛少妇色xxxxx| 成人国产精品久久久久久亚洲| 欧美成人黑人xx视频免费观看| 色婷婷av一区二区三区在线观看| 懂色av一区二区三区| 久久夜精品va视频免费观看| 欧美在线国产精品| 欧美高清自拍一区| 91九色国产社区在线观看| 色婷婷av一区二区三区久久| 成人444kkkk在线观看| 欧美精品18videosex性欧美| 日av在线播放中文不卡| 91精品国产自产在线老师啪| 91午夜在线播放| 国产成人精品免费视频| 国产成人精品优优av| 国产欧美精品在线播放| 亚洲人成在线免费观看| 国产噜噜噜噜噜久久久久久久久| 久热精品视频在线免费观看| 国模叶桐国产精品一区| 成人免费视频在线观看超级碰| 91亚洲人电影| 国产女人18毛片水18精品| 精品久久香蕉国产线看观看亚洲| 成人国产亚洲精品a区天堂华泰| 国产精品日日做人人爱| 亚洲在线观看视频| 亚洲激情视频在线| 欧美一区在线直播| 日韩av成人在线| 亚洲人成在线一二| 欧美在线视频一区二区| 欧美巨大黑人极品精男| 国产欧美日韩91| 国产性猛交xxxx免费看久久| 国产一区二区在线免费| 日韩影视在线观看| 欧美贵妇videos办公室| 国产91在线高潮白浆在线观看| 精品二区三区线观看| 欧美精品www在线观看| 91在线看www| 亚洲天堂2020| 91精品国产91久久久久| 国产日韩欧美视频在线| 日韩中文字幕av|