<?xml version="1.0" encoding="utf-8"?>
< root>
smiky
20boy
歐陽瘋24
girl
< /root>
< !--
*xpath的七種節點型別:
*元素,屬性,文字,文件節點(即根節點),命名空間,注釋,處理指令
**節點關係:
*父、子、兄弟、先輩、後代
**xpath常用符號:
*/ 從根節點開始選
*// 從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置 (example://name,會選擇兩個name元素,不考慮name元素出現在那)
*. 當前節點
*..父節點
*| 表示或 (example: //person[1] | person[2] 會選擇兩個person)
*@ 選取屬性 (example: //@multiple 會選取歐陽瘋中的值true)
* * 用於匹配任意元素
* @*用於匹配任意屬性
*node()匹配任意節點(//person/age/node())
*text()匹配文字節點(//person/age/text())
//node()與text()相關於乙個節點來使用
*last()匹配最後乙個節點 (//person[last()-1]匹配倒數第二個person)
*position()匹配某個位置(如//person[position=1]選擇第乙個person)
//last()與position看樣子只能在謂語中使用**
*xpath的12個軸:
*ancestor 父輩(包括父節點及祖父等)
*ancestor-or-self 相對於ancestor多了它自身
*descentdant 後輩(包括子節點及孫節點)
*descentdant-or-selt 相對於descendant多了它自身
*attribute 選擇當前節點的屬性
*child 選取當前節點的子節點
*parent 選擇當前節點的父節點
*self 選擇當前節點
*namesapce 選取當前節點的所有命名空間節點
*following 選擇當前節點標籤結束之後的所有節點(如//person[1]/following::*,不僅會選第二個person,還會選person[2]中的name,age,***)
*preceding 與following相反,選擇當前節點開始之前的所有節點
*preceding-sibling 選擇preceding的兄弟節點
**軸的使用:
*//person[2]/ancestor-or-self::*[1]
* 軸 ::軸中對應的節點[謂語(進一步選擇)]
**xpath運算子
*|,+,-,div(除),mod,*(乘法),>,>=,<,<=,=,!=,and,or
*運算子好像只能用在謂語裡面對節點進行進一步的過濾
//person[age>=20 and age=24] 根據子元素的值選擇
//person[@lang="cn"] 根據屬性選擇
1. /bookstore/book/@category
2. /bookstore/book[@category]
這兩者之間的區別:1選取的是乙個屬性節點,2選取的是具有category屬性的book,2中屬性只是謂語,用於限定選取結果
xslt常用元素:
< xsl:value-of select=""/>
< xsl:for-each select="" >
< xsl:sort select=""/>
< xsl:if test="">
< xsl:choose>
23">
20">
< /xsl:choose>
這裡相當於:
if(age>23)else if(age>20)else
xquery:
xquery 使用函式來提取 xml 文件中的資料。
doc() 用於開啟 "books.xml" 檔案:
doc("books.xml")/bookstore/book[price>30],xquery 使用謂語來限定從 xml 文件所提取的資料
flwor:
for 語句把 bookstore 元素下的所有 book 元素提取到名為 $x 的變數中。(測試過,變數名前要加$,不加報錯)
where 語句選取了 price 元素值大於 30 的 book 元素。
order by 語句定義了排序次序。將根據 title 元素進行排序。
return 語句規定返回什麼內容。在此返回的是 title 元素。
for, let, where, order by, return
for $book in doc("books.xml")/bookstore/book
where $book/price>30
order by $book/price
return $book/title
for $book in doc("books.xml")/bookstore/book
order by $book/price
return $book/title
< ul>
//data($x)用於獲取$x的值,必須用{}括起來,不然就會原樣輸出data($x)
}< /ul>
可以看出xquery用{}來區分**與非**部分(如同jsp中的<%%>)
當**與非**連線時一定要用{}括起**部分,否則xquery將全部當成非**處理(即當字成符),對於只有**的話不用括起來
xquery 的基礎語法規則:
一些基本的語法規則:
•xquery 對大小寫敏感
•xquery 的元素、屬性以及變數必須是合法的 xml 名稱。
•xquery 字串值可使用單引號或雙引號。
•xquery 變數由 「$」 並跟隨乙個名稱來進行定義,舉例,$bookstore
•xquery 注釋被 (: 和 :) 分割,舉例,(: xquery 注釋 :)
xquery注意事項:
xquery返回的要麼只有資料,要麼是有正常開始結束標籤的字串(123,這樣123會報錯)
可以出現這種結果:
123123
< abc>123
並且在只有**時不能用{}括著**
如:會報錯
-->
理解Jackrabbit中的Version機制
1.乙個會產生version的節點,它的node type 一定包含有 mix versionable。在jackrabbit裡面,只有實現了mix versionable的node 才可以做checkin checkout的操作。2.要讓乙個node產生新的version,你做的第一步應當是che...
python selenium模組 xpath定位
附w3xpath語法位址 總結 返回匹配到所有符合條件的第乙個節點,物件是 find element by xpath 返回匹配到所有符合條件的所有節點,物件是個list find elements by xpath 通過屬性定位 p 屬性 模糊定位 a contains text 文字 li co...
Jackrabbit 體系結構
jackrabbit的一般體系結構可以描述為三層 內容應用層,api層和內容儲存庫實現層。content repository api層分為兩個主要部分 只有極少數 大多數是管理應用程式 使用jackrabbit提供的非jsr 170 api。架構圖中的框並不直接表示表示包名或類名,而主要是按語義分...