為了整理出可以實(shí)現(xiàn)的XPath,我把根DTD相關(guān)的兩個(gè)內(nèi)置函數(shù)去掉了,Microsoft擴(kuò)展的11個(gè)函數(shù)也沒有考慮進(jìn)去。XPath是一門非圖靈完備的、沒有副作用的、弱類型以及很難看的語言,用于把一個(gè)XML的某個(gè)節(jié)點(diǎn)轉(zhuǎn)換成一些節(jié)點(diǎn)。
Context:上下文。指的是使用指定條件正在搜索的XML路徑的節(jié)點(diǎn)。
ContextList:被PREDICATE過濾的列表
UNIT
Name :節(jié)點(diǎn)的名字必須是Name
Namespace:* :節(jié)點(diǎn)的namespace必須是Namespace
* :任何節(jié)點(diǎn)
@Name :節(jié)點(diǎn)必須是屬性而且名字必須是Name
@* :任何屬性
comment() :注釋節(jié)點(diǎn)
node() :任何節(jié)點(diǎn)
text() :文字節(jié)點(diǎn)
processing-instruction(Name?) :processing-instruction節(jié)點(diǎn),名字必須是Name(可選)
PREDICATE
XPATH :Context中XPATH非空
VALUE(<|>|=|<=|>=|!=)VALUE :比較操作符
VALUE :位置是VALUE,從1開始
PREDICATE(and|or)PREDICATE :邏輯操作符
not(PREDICATE) :邏輯操作符
VALUE
常數(shù)
VALUE(+|-|*|div|mod)VALUE :操作符
(VALUE) :VALUE
count(XPATH) :數(shù)目
last() :ContextList的數(shù)目
local-name(XPATH?) :返回沒有namespace的名字,沒參數(shù)則為ContextList
name(XPATH?) :返回全名,沒參數(shù)則為ContextList
position() :Context在ContextList中的位置
concat(Str1,Str2[,Str3…]) :連接字符串
contains(Big,Small) :返回Big中是否出現(xiàn)Small
normalize-space(String) :將String頭尾的空白去掉,中間的連續(xù)空白使用一個(gè)空格代替
starts-with(Big,Small) :返回Big是否由Small開頭
string(Object) :類型轉(zhuǎn)換,如果Object為NodeList則將NodeList變?yōu)?/span>NodeList[1],然后講NodeList所有子節(jié)點(diǎn)的值連接起來
string-length(String) :長度
substring(String,Start,Length) :子串
substring-after(Big,Small) :返回Big中位于Small后的部分
substring-before(Big,Small) :返回Big中位于Small之前的部分
translate(A,B,C) :將A中的所有B[i]換成C[i],B[position()>length(C)]換為空字符串
boolean(X) :類型轉(zhuǎn)換,非0true,非空true
false() :返回false
true() :返回true
ceiling,floor,round(X) :轉(zhuǎn)換浮點(diǎn)
sum(XPATH) :所有值相加
number(X) :類型轉(zhuǎn)換,1true0false,其他類型轉(zhuǎn)string后轉(zhuǎn)number
XPATH
. :Context
.. :Context的父節(jié)點(diǎn)
/ :根節(jié)點(diǎn)
/UNIT :根節(jié)點(diǎn)中滿足UNIT的子節(jié)點(diǎn),UNIT的Context為根節(jié)點(diǎn)
XPATH /UNIT :XPATH中滿足UNIT的子節(jié)點(diǎn),UNIT的Context為NODELIST的其中一項(xiàng)
//UNIT :根節(jié)點(diǎn)中滿足UNIT的直接或間接子節(jié)點(diǎn),UNIT的Context為根節(jié)點(diǎn)
XPATH //UNIT :XPATH中滿足UNIT的直接或間接子節(jié)點(diǎn),UNIT的Context為XPath的其中一項(xiàng)
(XPATH) :XPATH
XPATH [PREDICATE] :篩選
Axis::XPATH
ancestor :XPATH的直接或間接祖先
ancestor-or-self :ancestor和XPath
attribute :XPATH的所有屬性
child :XPATH的所有子節(jié)點(diǎn)(包括屬性)
descendant :XPATH的直接或間接子節(jié)點(diǎn)
descendant-or-self :descendant和XPATH
following :所有完全處于XPATH后的節(jié)點(diǎn)
following-sibling :following中與自己處于同一層次的節(jié)點(diǎn)
preceding :所有完全處于XPATH之前的節(jié)點(diǎn)
preceding-sibling :preceding中與自己處于同一層次的節(jié)點(diǎn)
self :XPATH
parent :XPATH的父節(jié)點(diǎn)
XPATH|XPATH :并集
優(yōu)先級(jí):
() > :: > [] > /,// > |
posted on 2008-06-20 01:44
陳梓瀚(vczh) 閱讀(4911)
評(píng)論(1) 編輯 收藏 引用 所屬分類:
C++