/ |
Document Root文檔根. |
/* |
選擇文檔根下面的所有元素節(jié)點(diǎn),即根節(jié)點(diǎn)(XML文檔只有一個(gè)根節(jié)點(diǎn)) |
/node() |
根元素下所有的節(jié)點(diǎn)(包括文本節(jié)點(diǎn),注釋節(jié)點(diǎn)等) |
/text() |
查找文檔根節(jié)點(diǎn)下的所有文本節(jié)點(diǎn) |
/messages/message |
messages節(jié)點(diǎn)下的所有message節(jié)點(diǎn) |
/messages/message[1] |
messages節(jié)點(diǎn)下的第一個(gè)message節(jié)點(diǎn) |
/messages/message[1]/self::node() |
第一個(gè)message節(jié)點(diǎn)(self軸表示自身,node()表示選擇所有節(jié)點(diǎn)) |
/messages/message[1]/node() |
第一個(gè)message節(jié)點(diǎn)下的所有子節(jié)點(diǎn) |
/messages/message[1]/*[last()] |
第一個(gè)message節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn) |
/messages/message[1]/[last()] |
Error,謂詞前必須是節(jié)點(diǎn)或節(jié)點(diǎn)集 |
/messages/message[1]/node()[last()] |
第一個(gè)message節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn) |
/messages/message[1]/text() |
第一個(gè)message節(jié)點(diǎn)的所有子節(jié)點(diǎn) |
/messages/message[1]//text() |
第一個(gè)message節(jié)點(diǎn)下遞歸下降查找所有的文本節(jié)點(diǎn)(無(wú)限深度) |
/messages/message[1] /child::node()
/messages/message[1] /node()
/messages/message[position()=1]/node()
//message[@id=1] /node() |
第一個(gè)message節(jié)點(diǎn)下的所有子節(jié)點(diǎn) |
//message[@id=1] //child::node() |
遞歸所有子節(jié)點(diǎn)(無(wú)限深度) |
//message[position()=1]/node() |
選擇id=1的message節(jié)點(diǎn)以及id=0的message節(jié)點(diǎn) |
/messages/message[1] /parent::* |
Messages節(jié)點(diǎn) |
/messages/message[1]/body/attachments/parent::node()
/messages/message[1]/body/attachments/parent::* /messages/message[1]/body/attachments/.. |
attachments節(jié)點(diǎn)的父節(jié)點(diǎn)。父節(jié)點(diǎn)只有一個(gè),所以node()和* 返回結(jié)果一樣。
(..也表示父節(jié)點(diǎn). 表示自身節(jié)點(diǎn)) |
//message[@id=0]/ancestor::* |
Ancestor軸表示所有的祖輩,父,祖父等。
向上遞歸 |
//message[@id=0]/ancestor-or-self::* |
向上遞歸,包含自身 |
//message[@id=0]/ancestor::node() |
對(duì)比使用*,多一個(gè)文檔根元素(Document root) |
/messages/message[1]/descendant::node()
//messages/message[1]//node() |
遞歸下降查找message節(jié)點(diǎn)的所有節(jié)點(diǎn) |
/messages/message[1]/sender/following::* |
查找第一個(gè)message節(jié)點(diǎn)的sender節(jié)點(diǎn)后的所有同級(jí)節(jié)點(diǎn),并對(duì)每一個(gè)同級(jí)節(jié)點(diǎn)遞歸向下查找。 |
//message[@id=1]/sender/following-sibling::* |
查找id=1的message節(jié)點(diǎn)的sender節(jié)點(diǎn)的所有后續(xù)的同級(jí)節(jié)點(diǎn)。 |
//message[@id=1]/datetime/@date |
查找id=1的message節(jié)點(diǎn)的datetime節(jié)點(diǎn)的date屬性 |
//message[@id=1]/datetime[@date]
//message/datetime[attribute::date] |
查找id=1的message節(jié)點(diǎn)的所有含有date屬性的datetime節(jié)點(diǎn) |
//message[datetime] |
查找所有含有datetime節(jié)點(diǎn)的message節(jié)點(diǎn) |
//message/datetime/attribute::*
//message/datetime/attribute::node()
//message/datetime/@* |
返回message節(jié)點(diǎn)下datetime節(jié)點(diǎn)的所有屬性節(jié)點(diǎn) |
//message/datetime[attribute::*]
//message/datetime[attribute::node()]
//message/datetime[@*]
//message/datetime[@node()] |
選擇所有含有屬性的datetime節(jié)點(diǎn) |
//attribute::* |
選擇根節(jié)點(diǎn)下的所有屬性節(jié)點(diǎn) |
//message[@id=0]/body/preceding::node() |
順序選擇body節(jié)點(diǎn)所在節(jié)點(diǎn)前的所有同級(jí)節(jié)點(diǎn)。(查找順序?yàn)椋合日业絙ody節(jié)點(diǎn)的頂級(jí)節(jié)點(diǎn)(根節(jié)點(diǎn)),得到根節(jié)點(diǎn)標(biāo)簽前的所有同級(jí)節(jié)點(diǎn),執(zhí)行完成后繼續(xù)向下一級(jí),順序得到該節(jié)點(diǎn)標(biāo)簽前的所有同級(jí)節(jié)點(diǎn),依次類推。)
注意:查找同級(jí)節(jié)點(diǎn)是順序查找,而不是遞歸查找。 |
//message[@id=0]/body/preceding-sibling::node() |
順序查找body標(biāo)簽前的所有同級(jí)節(jié)點(diǎn)。(和上例一個(gè)最大的區(qū)別是:不從最頂層開(kāi)始到body節(jié)點(diǎn)逐層查找。我們可以理解成少了一個(gè)循環(huán),而只查找當(dāng)前節(jié)點(diǎn)前的同級(jí)節(jié)點(diǎn)) |
//message[@id=1]//*[namespace::amazon] |
查找id=1的所有message節(jié)點(diǎn)下的所有命名空間為amazon的節(jié)點(diǎn)。 |
//namespace::* |
文檔中的所有的命名空間節(jié)點(diǎn)。(包括默認(rèn)命名空間xmlns:xml) |
//message[@id=0]//books/*[local-name()='book'] |
選擇books下的所有的book節(jié)點(diǎn),
注意:由于book節(jié)點(diǎn)定義了命名空間<amazone:book>.若寫成//message[@id=0]//books/book則查找不出任何節(jié)點(diǎn)。 |
//message[@id=0]//books/*[local-name()='book' and namespace-uri()='http://www.amazon.com/books/schema'] |
選擇books下的所有的book節(jié)點(diǎn),(節(jié)點(diǎn)名和命名空間都匹配) |
//message[@id=0]//books/*[local-name()='book'][year>2006] |
選擇year節(jié)點(diǎn)值>2006的book節(jié)點(diǎn) |
//message[@id=0]//books/*[local-name()='book'][1]/year>2006 |
指示第一個(gè)book節(jié)點(diǎn)的year節(jié)點(diǎn)值是否大于2006.
返回xs:boolean: true |