association

          XPath語法

          XPath語法

          Previous Next

          XPath使用路徑表達式定位XML文檔內的節點。


          XML示例文檔

          我們將使用如下的簡單XML文檔描述XPath語法:

          <?xml version="1.0" encoding="ISO-8859-1"?>
                      <catalog>
                      <cd country="USA">
                      <title>Empire Burlesque</title>
                      <artist>Bob Dylan</artist>
                      <price>10.90</price>
                      </cd>
                      <cd country="UK">
                      <title>Hide your heart</title>
                      <artist>Bonnie Tyler</artist>
                      <price>9.90</price>
                      </cd>
                      <cd country="USA">
                      <title>Greatest Hits</title>
                      <artist>Dolly Parton</artist>
                      <price>9.90</price>
                      </cd>
                      </catalog>


          定位節點

          XML文檔可以看作是一個節點樹(非常類似于計算機的樹形文件夾)。

          XPath使用模式表達式識別XML文檔里的節點。一個XPath模式是一個以斜線分隔的子元素名列表,用于描述XML文檔的一個路徑。模式選擇匹配該路徑的元素。

          下面的XPath表達式選擇catalog元素的所有cd元素的所有price元素:

          /catalog/cd/price

          注意: 如果路徑以一個斜線(/)開始,代表相對于一個元素的絕對路徑

          注意: 如果路徑以兩個斜線開始,表示選擇文檔中所有符合該條件的元素(即使它們在不同的XML樹的級別)!

          下面的XPath表達式選擇文檔中所有的cd元素:

          //cd



          選擇未知元素

          通配符(*)用來選擇未知XML元素。

          下面的XPath表達式選擇catalog元素下所有cd元素的所有子元素:

          /catalog/cd/*

          下面的XPath表達式選擇catalog元素的孫子元素下所有的price元素:

          /catalog/*/price

          下面的XPath表達式選擇有兩個祖先的所有price元素:

          /*/*/price

          下面的XPath表達式選擇文檔中所有元素:

          //*



          選擇分支

          通過在XPath表達式中使用方括號可以進一步地指定一個元素。

          下面的XPath表達式選擇catalog元素的第一個cd子元素:

          /catalog/cd[1]

          下面的XPath表達式選擇catalog元素的最后一個子元素(注意:沒有first()函數):

          /catalog/cd[last()]

          下面的XPath表達式選擇catalog元素下含有price子元素的所有cd元素:

          /catalog/cd[price]

          下面的XPath表達式選擇catalog元素下子元素price值等于10.90的所有cd元素:

          /catalog/cd[price=10.90]

          下面的XPath表達式選擇catalog元素下price元素值等于10.90的所有cd元素的price元素:

          /catalog/cd[price=10.90]/price



          選擇多個路徑

          通過在XPath表達式中使用|操作符,可以選擇多個路徑。

          下面的XPath表達式選擇catalog元素的子元素cd元素下所有的title和artist元素:

          /catalog/cd/title | /catalog/cd/artist

          下面的XPath表達式選擇文檔中所有title元素和artist元素:

          //title | //artist

          下面的XPath表達式選擇文檔中所有title、artist、price元素:

          //title | //artist | //price

          下面的XPath表達式選擇catalog元素的cd子元素下所有的title元素,以及文檔中所有的artist元素:

          /catalog/cd/title | //artist



          選擇屬性

          在XPath中,所有屬性以前綴@指定。

          下面的XPath表達式選擇所有名為country的屬性:

          //@country

          下面的XPath表達式選擇所有含有country屬性的cd元素:

          //cd[@country]

          下面的XPath表達式選擇選擇所有含有任何屬性的cd元素:

          //cd[@*]

          下面的XPath表達式選擇屬性country等于UK的所有cd元素:

          //cd[@country='UK']

          摘自:
          http://61.139.52.111:8090/kj/Manfeel/oltl/session1/session1-p02.htm

          posted on 2008-03-05 10:12 揚揚 閱讀(588) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2008年3月>
          2425262728291
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汝州市| 康定县| 文山县| 小金县| 揭阳市| 泽州县| 靖安县| 崇信县| 铁岭市| 盘山县| 修水县| 南陵县| 茌平县| 福安市| 铁力市| 平遥县| 连山| 东兰县| 扶余县| 呼伦贝尔市| 涪陵区| 衡东县| 高阳县| 临高县| 陈巴尔虎旗| 乐陵市| 囊谦县| 邵武市| 安西县| 康平县| 张掖市| 金华市| 灵宝市| 平谷区| 莒南县| 大关县| 巩留县| 五台县| 社旗县| 日照市| 黄石市|