XPath 怎么写?

XPath例子与介绍:

 

XPath例子

Xpath表达式

描述

bookstore 选择 根目录下 所有叫“bookstore”的子节点(这些bookstore节点只能是根目录的子节点,是孙节点就不行)
/bookstore 选择根节点“bookstore”(如果根节点不叫bookstore,这样就没用)
bookstore/book 选择 根目录下 所有bookstore子节点下、叫book的所有子节点(这些book节点只能是bookstore的子节点)
bookstore//book 选择 根目录下 所有bookstore子节点下、叫book的所有节点(book无论是子节点也好,还是孙节点)
//book 选择 全部叫“book”的节点,无论他在文档哪个位置
//@lang 选择全部 叫lang的属性(注:属性也叫属性节点),无论这些属性在文档中哪个位置、哪个节点上
/bookstore/book[1] 选择 在bookstore根节点下、第一个book子节点(book节点是属于bookstore的子节点)
/bookstore/book[last()] 选择 在bookstore根节点下、最后一个book子节点(book节点是属于bookstore的子节点)
/bookstore/book[last()-1] 选择 在bookstore根节点下、最后第二个book子节点(book节点是属于bookstore的子节点)
/bookstore/book[position()<3] 选择 在bookstore节点下、前两个book子节点(这两个book节点是属于bookstore的子节点)
//title[@lang] 选择 所有 有带lang属性、叫title的节点(可有多个,而且无论在文档哪个位置)
//title[@lang='en'] 选择 所有 lang属性是en、叫title的节点(可有多个,而且无论在文档哪个位置)
/bookstore/book[price>35.00] 选择 在bookstore根节点下、price属性大于35的book子节点(可有多个,只能是bookstore的子节点)
/bookstore/book[price>35.00]/title 选择 在bookstore根节点下、price属性大于35的book子节点(可有多个)下、叫title的子节点(可有多个)
/bookstore/* 选择 在bookstore根节点下、所有的子节点(孙节点不行,只是子节点)
//* 选择 所有的节点(无论他在文档哪个位置)
//title[@*] 选择 所有 带最少一个属性、叫title的节点(无论title在文档哪个位置)

//book/title | //book/price

选择 在文档中所有book节点下、所有叫title的子节点 + 选择 在文档中所有book节点下、所有叫price的子节点

//title | //price

选择 在文档中所有的title节点 + 在文档中所有的price节点

/bookstore/book/title | //price

选择 在booksotre根节点下、book子节点(可有多个)下、所有title子节点 + 文档中所有price节点

/bookstore/.

选择 当前bookstore根节点 (注意那个点,表示当前)

/booksotre/book/../price

选择 在bookstore根节点下、所有price子节点(两个点..是回退的意思,例子中,回退 退到了和book子节点同个层级)

 

例子改动自 来源:https://www.w3schools.com/xml/xpath_syntax.asp

posted @ 2019-08-12 11:02  daniel57  阅读(969)  评论(0编辑  收藏  举报