XPath 11個(gè)實(shí)例_Xml教程
推薦:XMLHTTP資料XMLHTTP對象及其方法------------------MSXML中提供了Microsoft.XMLHTTP對象,能夠完成從數(shù)據(jù)包到Request對象的轉(zhuǎn)換以及發(fā)送任務(wù)。 創(chuàng)建XMLHTTP對象的語句如下: Set objXML
實(shí)例 1
基本的XPath語法類似于在一個(gè)文件系統(tǒng)中定位文件,如果路徑以斜線 / 開始, 那么該路徑就表示到一個(gè)元素的絕對路徑。
/AAA
選擇根元素AAA
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
/AAA/CCC
選擇AAA的所有CCC子元素
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
/AAA/DDD/BBB
選擇AAA的子元素DDD的所有子元素
<AAA>
<BBB/>
<CCC/>
<BBB/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
實(shí)例 2
如果路徑以雙斜線 // 開頭, 則表示選擇文檔中所有滿足雙斜線//之后規(guī)則的元素(無論層級關(guān)系) //BBB
選擇所有BBB元素
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
//DDD/BBB
選擇所有父元素是DDD的BBB元素
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
實(shí)例 3
星號 * 表示選擇所有由星號之前的路徑所定位的元素
/AAA/CCC/DDD/*
選擇所有路徑依附于/AAA/CCC/DDD的元素
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
/*/*/*/BBB
選擇所有的有3個(gè)祖先元素的BBB元素
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
//*
選擇所有元素
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
實(shí)例 4
方塊號里的表達(dá)式可以進(jìn)一步的指定元素, 其中數(shù)字表示元素在選擇集里的位置, 而last()函數(shù)則表示選擇集中的最后一個(gè)元素.
/AAA/BBB[1]
選擇AAA的第一個(gè)BBB子元素
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
/AAA/BBB[last()]
選擇AAA的最后一個(gè)BBB子元素
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
實(shí)例 5
//@id
選擇所有的id屬性
<AAA>
<BBB id = \"b1\"/>
<BBB id = \"b2\"/>
<BBB name = \"bbb\"/>
<BBB/>
</AAA>
//BBB[@id]
選擇有id屬性的BBB元素
<AAA>
<BBB id = \"b1\"/>
<BBB id = \"b2\"/>
<BBB name = \"bbb\"/>
<BBB/>
</AAA>
//BBB[@name]
選擇有name屬性的BBB元素
<AAA>
<BBB id = \"b1\"/>
<BBB id = \"b2\"/>
<BBB name = \"bbb\"/>
<BBB/>
</AAA>
//BBB[@*]
選擇有任意屬性的BBB元素
<AAA>
<BBB id = \"b1\"/>
<BBB id = \"b2\"/>
<BBB name = \"bbb\"/>
<BBB/>
</AAA>
//BBB[not(@*)]
選擇沒有屬性的BBB元素
<AAA>
<BBB id = \"b1\"/>
<BBB id = \"b2\"/>
<BBB name = \"bbb\"/>
<BBB/>
</AAA>
實(shí)例 6
屬性的值可以被用來作為選擇的準(zhǔn)則, normalize-space函數(shù)刪除了前部和尾部的空格, 并且把連續(xù)的空格串替換為一個(gè)單一的空格
//BBB[@id=\'b1\']
選擇含有屬性id且其值為\'b1\'的BBB元素
<AAA>
<BBB id = \"b1\"/>
<BBB name = \" bbb \"/>
<BBB name = \"bbb\"/>
</AAA>
//BBB[@name=\'bbb\']
選擇含有屬性name且其值為\'bbb\'的BBB元素
<AAA>
<BBB id = \"b1\"/>
<BBB name = \" bbb \"/>
<BBB name = \"bbb\"/>
</AAA>
//BBB[normalize-space(@name)=\'bbb\']
選擇含有屬性name且其值(在用normalize-space函數(shù)去掉前后空格后)為\'bbb\'的BBB元素
<AAA>
<BBB id = \"b1\"/>
<BBB name = \" bbb \"/>
<BBB name = \"bbb\"/>
</AAA>
實(shí)例 7
count()函數(shù)可以計(jì)數(shù)所選元素的個(gè)數(shù)
//*[count(BBB)=2]
選擇含有2個(gè)BBB子元素的元素
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
//*[count(*)=2]
選擇含有2個(gè)子元素的元素
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
//*[count(*)=3]
選擇含有3個(gè)子元素的元素
<AAA>
<CCC>
<BBB/>
<BBB/>
<BBB/>
</CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
<EEE>
<CCC/>
<DDD/>
</EEE>
</AAA>
實(shí)例 8
name()函數(shù)返回元素的名稱, start-with()函數(shù)在該函數(shù)的第一個(gè)參數(shù)字符串是以第二個(gè)參數(shù)字符開始的情況返回true, contains()函數(shù)當(dāng)其第一個(gè)字符串參數(shù)包含有第二個(gè)字符串參數(shù)時(shí)返回true.
//*[name()=\'BBB\']
選擇所有名稱為BBB的元素(這里等價(jià)于//BBB)
<AAA>
<BCC>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
//*[starts-with(name(),\'B\')]
選擇所有名稱以\"B\"起始的元素
<AAA>
<BCC>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
//*[contains(name(),\'C\')]
選擇所有名稱包含\"C\"的元素
<AAA>
<BCC>
<BBB/>
<BBB/>
<BBB/>
</BCC>
<DDB>
<BBB/>
<BBB/>
</DDB>
<BEC>
<CCC/>
<DBD/>
</BEC>
</AAA>
實(shí)例 9
多個(gè)路徑可以用分隔符 | 合并在一起
//CCC | //BBB
選擇所有的CCC和BBB元素
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE | //BBB
選擇所有的BBB元素和所有是AAA的子元素的EEE元素
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
/AAA/EEE | //DDD/CCC | /AAA | //BBB
可以合并的路徑數(shù)目沒有限制
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA>
實(shí)例 10
child軸(axis)包含上下文節(jié)點(diǎn)的子元素, 作為默認(rèn)的軸,可以忽略不寫.
/AAA
等價(jià)于 /child::AAA
<AAA>
<BBB/>
<CCC/>
</AAA>
/child::AAA
等價(jià)于/AAA
<AAA>
<BBB/>
<CCC/>
</AAA>
/AAA/BBB
等價(jià)于/child::AAA/child::BBB
<AAA>
<BBB/>
<CCC/>
</AAA>
/child::AAA/child::BBB
等價(jià)于/AAA/BBB
<AAA>
<BBB/>
<CCC/>
</AAA>
/child::AAA/BBB
二者都可以被合并
<AAA>
<BBB/>
<CCC/>
</AAA>
實(shí)例 11
descendant (后代)軸包含上下文節(jié)點(diǎn)的后代,一個(gè)后代是指子節(jié)點(diǎn)或者子節(jié)點(diǎn)的子節(jié)點(diǎn)等等, 因此descendant軸不會(huì)包含屬性和命名空間節(jié)點(diǎn).
/descendant::*
選擇文檔根元素的所有后代.即所有的元素被選擇
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
/AAA/BBB/descendant::*
選擇/AAA/BBB的所有后代元素
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
<CCC>
<DDD>
<EEE>
<DDD>
<FFF/>
</DDD>
</EEE>
</DDD>
</CCC>
</AAA>
//CCC/descendant::*
選擇在祖先元素中有CCC的所有元素
<AAA>
<BBB>
<DDD>
<CCC>
<DDD/>
<EEE/>
</CCC>
</DDD>
</BBB>
</AAA>
分享:XML入門的常見問題(一)作者:AngelGavin 出處:CSDN一般問題 什么是 XML? 可擴(kuò)展標(biāo)記語言 (XML) 是 Web 上的數(shù)據(jù)通用語言。它使開發(fā)人員能夠?qū)⒔Y(jié)構(gòu)化數(shù)據(jù),從許多不同的應(yīng)用程序傳遞到桌面,進(jìn)行本地計(jì)算和演示。XM
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
Xml教程Rss訂閱編程教程搜索
Xml教程推薦
- XML輕松學(xué)習(xí)手冊(5)XML實(shí)例解析
- 在XsltArgumentList中調(diào)用xsl參數(shù)
- 用帶批注的 XDR 架構(gòu)創(chuàng)建 XML 視圖
- 詳談WML Script標(biāo)準(zhǔn)函數(shù)庫
- 淺析XMLHTTPRequest的屬性和方法
- 使用純HTML的通用數(shù)據(jù)管理和服務(wù)
- 解決跨站點(diǎn)XMLHttp請求的一個(gè)變通方法
- XML教程之認(rèn)識學(xué)習(xí) XML 元素
- XML加ASP實(shí)現(xiàn)網(wǎng)頁“本地化”
- Xml_javascript分頁
- 相關(guān)鏈接:
- 教程說明:
Xml教程-XPath 11個(gè)實(shí)例
。