春風(fēng)博客

          春天里,百花香...

          導(dǎo)航

          <2008年11月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          統(tǒng)計(jì)

          公告

          MAIL: junglesong@gmail.com
          MSN: junglesong_5@hotmail.com

          Locations of visitors to this page

          常用鏈接

          留言簿(11)

          隨筆分類(224)

          隨筆檔案(126)

          個(gè)人軟件下載

          我的其它博客

          我的鄰居們

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          XPath示例



          DOM與XPath

          我們可以使用DOM來(lái)解析來(lái)自服務(wù)器端的XML反饋,但返回結(jié)果比較復(fù)雜時(shí)我們必須在XML文檔中一個(gè)節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)的向下鉆探,而使用XPath(專門用于定位匹配模式的一個(gè)或多個(gè)節(jié)點(diǎn)的小語(yǔ)言)只要一行代碼就能遍歷多個(gè)節(jié)點(diǎn)。與使用DOM相比,使用XSLT和XPath編碼所投入的精力要小得多,隨著應(yīng)用規(guī)模的增長(zhǎng),后者的優(yōu)勢(shì)會(huì)越來(lái)越顯著。

          XPath簡(jiǎn)介

          每個(gè)XPath表達(dá)式都有兩部分:一個(gè)上下文節(jié)點(diǎn)和一個(gè)節(jié)點(diǎn)模式。上下文節(jié)點(diǎn)提供了節(jié)點(diǎn)模式起始的位置。節(jié)點(diǎn)模式是由一個(gè)或者多個(gè)節(jié)點(diǎn)組成的字符串。舉例來(lái)說(shuō),有一XML文檔如下:

          <?xml version="1.0" encoding="GBK"?>
          <members> 
            
          <member name="Andy">
              
          <age>25</age>
              
          <title>JSE</title>
            
          </member>
            
          <member name="Bill">
              
          <age>35</age>
              
          <title>SSE</title>
            
          </member>
          </members>


          XPath表達(dá)式如下:member/age.
          如果上下文節(jié)點(diǎn)是<members>,則前面的XPath表達(dá)式就匹配了<age>25</age>, <age>35</age>。在這個(gè)表達(dá)式中,member和age都表示了XML元素的標(biāo)簽名,按照它們?cè)谏舷挛墓?jié)點(diǎn)中出現(xiàn)的順序;斜杠表示從父節(jié)點(diǎn)到子節(jié)點(diǎn)的關(guān)系。這個(gè)XPath表達(dá)式表示:從<members>起,匹配位于member節(jié)點(diǎn)下的子節(jié)點(diǎn)age元素。
          要選擇第一個(gè)age節(jié)點(diǎn),表達(dá)式要變成members/member[position()=1]/age,這里使用了XPath的position函數(shù),它用于返回元素在父節(jié)點(diǎn)下的位置,每一個(gè)子節(jié)點(diǎn)的位置為一。
          XPath中還可以匹配屬性,如果要選擇name=bill的member元素,XPath表達(dá)式為members/member[@name=‘Bill’]。其中@是attribute的簡(jiǎn)寫。

          IE對(duì)XPath的支持

          XPath是一種十分強(qiáng)大的表達(dá)式可以令在DOM中查找指定節(jié)點(diǎn)變得很容易,因此IE和Mozilla都在DOM實(shí)現(xiàn)中引入了XPath支持。
          在IE 中,通過(guò)提供selectNodes()與selectSingleNode()這樣兩個(gè)函數(shù),我們就可以以類似文件路徑的方式,來(lái)訪問(wèn)任意深度的XML數(shù)據(jù). selectNodes()用于返回匹配某個(gè)模式的節(jié)點(diǎn)的集合; selectSingleNode()用于返回匹配給定模式的第一個(gè)節(jié)點(diǎn)。它們的具體使用請(qǐng)見(jiàn)例子:XPathSample。


          XPath例程下載:
          http://www.aygfsteel.com/Files/sitinspring/XPathSample20081113124739.rar

          posted on 2008-11-13 12:52 sitinspring 閱讀(2655) 評(píng)論(0)  編輯  收藏 所屬分類: Ajax

          sitinspring(http://www.aygfsteel.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
          主站蜘蛛池模板: 丰都县| 彭泽县| 清苑县| 潢川县| 吉隆县| 金门县| 喜德县| 调兵山市| 麦盖提县| 林州市| 商都县| 漯河市| 荥经县| 班戈县| 富蕴县| 大名县| 健康| 博爱县| 北票市| 香河县| 手机| 马龙县| 饶阳县| 陆河县| 泸定县| 巨野县| 永清县| 柳江县| 太保市| 临颍县| 吐鲁番市| 沭阳县| 正宁县| 庐江县| 龙胜| 富裕县| 抚州市| 宣恩县| 玉林市| 井研县| 大姚县|