Rookie

          Headache English

          數(shù)據(jù)加載中……
          XML 學(xué)習(xí)(四) xPath基礎(chǔ)
          一,簡介:XPath 使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點(diǎn)或者節(jié)點(diǎn)集,這些路徑表達(dá)式和我們在常規(guī)的電腦文件系統(tǒng)中看到的表達(dá)式非常相似。XPath 使用路徑表達(dá)式在 XML 文檔中進(jìn)行導(dǎo)航 ;XPath 包含一個(gè)標(biāo)準(zhǔn)函數(shù)庫 ;XPath 是 XSLT 中的主要元素 。
          二,XPath 術(shù)語
          節(jié)點(diǎn)(Node):在 XPath 中,有七種類型的節(jié)點(diǎn):元素、屬性、文本、命名空間、處理指令、注釋以及文檔(根)節(jié)點(diǎn)。XML 文檔是被作為節(jié)點(diǎn)樹來對(duì)待的。樹的根被稱為文檔節(jié)點(diǎn)或者根節(jié)點(diǎn)。

          基本值(或稱原子值,Atomic value):基本值是無父或無子的節(jié)點(diǎn)。
          項(xiàng)目(Item):項(xiàng)目是基本值或者節(jié)點(diǎn)。

          節(jié)點(diǎn)關(guān)系
          父(Parent):每個(gè)元素以及屬性都有一個(gè)父,
          子(Children):元素節(jié)點(diǎn)可有零個(gè)、一個(gè)或多個(gè)子,
          同胞(Sibling):擁有相同的父的節(jié)點(diǎn)
          先輩(Ancestor):某節(jié)點(diǎn)的父、父的父,等等,
          后代(Descendant):某個(gè)節(jié)點(diǎn)的子,子的子,等等;

          三,XPath 語法

          XPath 使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點(diǎn)或節(jié)點(diǎn)集。節(jié)點(diǎn)是通過沿著路徑 (path) 或者步 (steps) 來選取的,
          nodename   選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn),
          /        從根節(jié)點(diǎn)選取 ,
          //       從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置 ,
          .        選取當(dāng)前節(jié)點(diǎn) ,
          ..       選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn) ,
          @     選取屬性 ,


          謂語(Predicates):謂語用來查找某個(gè)特定的節(jié)點(diǎn)或者包含某個(gè)指定的值的節(jié)點(diǎn)。謂語被嵌在方括號(hào)中。函數(shù)或者表達(dá)式;

          選取未知節(jié)點(diǎn):XPath 通配符可用來選取未知的 XML 元素。
          *       匹配任何元素節(jié)點(diǎn)
          @*    匹配任何屬性節(jié)點(diǎn)
          node()  匹配任何類型的節(jié)點(diǎn)

          選取若干路徑:通過在路徑表達(dá)式中使用“|”運(yùn)算符,您可以選取若干個(gè)路徑。

          四,XPath Axes(坐標(biāo)軸):軸可定義某個(gè)相對(duì)于當(dāng)前節(jié)點(diǎn)的節(jié)點(diǎn)集。

          ancestor      選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)
          ancestor-or-self  選取當(dāng)前節(jié)點(diǎn)的所有先輩(父、祖父等)以及當(dāng)前節(jié)點(diǎn)本身
          attribute     選取當(dāng)前節(jié)點(diǎn)的所有屬性
          child       選取當(dāng)前節(jié)點(diǎn)的所有子元素。
          descendant     選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)。
          descendant-or-self 選取當(dāng)前節(jié)點(diǎn)的所有后代元素(子、孫等)以及當(dāng)前節(jié)點(diǎn)本身。
          following     選取文檔中當(dāng)前節(jié)點(diǎn)的結(jié)束標(biāo)簽之后的所有節(jié)點(diǎn)。
          namespace     選取當(dāng)前節(jié)點(diǎn)的所有命名空間節(jié)點(diǎn)
          parent       選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。
          preceding     選取文檔中當(dāng)前節(jié)點(diǎn)的開始標(biāo)簽之前的所有節(jié)點(diǎn)。
          preceding-sibling 選取當(dāng)前節(jié)點(diǎn)之前的所有同級(jí)節(jié)點(diǎn)。
          self        選取當(dāng)前節(jié)點(diǎn)。

          步的語法: 軸名稱::節(jié)點(diǎn)測試[謂語]


          五,XPath 運(yùn)算符:XPath 表達(dá)式可返回節(jié)點(diǎn)集、字符串、邏輯值以及數(shù)字。
          加(+),減(-),乘(*),除(div),等于(=),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=),與(and),或(or),余(mod),

          posted on 2008-01-10 18:57 zhhang920 閱讀(526) 評(píng)論(0)  編輯  收藏 所屬分類: JAVASCRIPT

          主站蜘蛛池模板: 阿拉善盟| 滕州市| 鹰潭市| 富源县| 革吉县| 塔河县| 远安县| 昔阳县| 四会市| 竹北市| 保德县| 祁阳县| 西畴县| 雷波县| 甘泉县| 金川县| 尉犁县| 都匀市| 岑巩县| 澄迈县| 慈利县| 理塘县| 上栗县| 连云港市| 平山县| 察雅县| 明水县| 托里县| 靖边县| 古田县| 梁河县| 益阳市| 碌曲县| 四子王旗| 亚东县| 杂多县| 天镇县| 文水县| 米易县| 南木林县| 长阳|