2014-09-28 102 views
0

定位屬性我有這樣一羣節點:的XQuery的節點值

<root> 
    <books> 
     <book id="1">Book 1</book> 
     <book id="2">Book 2</book> 
     <book id="3">Book 3</book> 
    </books> 
</root> 

我想是拿到書文本節點「書2」的ID。我該怎麼做呢?我想這沒有任何結果($ DOC是我的文檔路徑):

let $b := $doc/root/books/book[book = "Book 2"] 
return data($b/@id) 

編輯:我的意思是$ DOC是文檔節點,不僅路徑。

回答

2

假設$doc實際上是一個文檔節點,而不是像你描述它,那麼你可以使用下面的文件路徑

$doc/root/books/book[. = "Book 2"]/data(@id) 

簡而言之.指的是當前上下文項,因爲這是謂詞前的XPath的最後一部分,所以這已經是書。

+0

可愛,這個工作。謝謝! – Myone 2014-09-29 09:14:24

1

如果$doc是你的文件的路徑,你就需要調用fn:doc($doc),以獲取文檔節點:

fn:doc($doc)/root/books/book[. = "Book 2"]/data(@id)