Attributes XQuery按节点值定位属性

Attributes XQuery按节点值定位属性,attributes,xquery,Attributes,Xquery,我有一堆这样的节点: <root> <books> <book id="1">Book 1</book> <book id="2">Book 2</book> <book id="3">Book 3</book> </books> </root> 编辑:我的意思是$doc是文档节点,而不仅仅是路径。假设$doc实际上是一个文档节

我有一堆这样的节点:

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

编辑:我的意思是$doc是文档节点,而不仅仅是路径。

假设
$doc
实际上是一个文档节点,而不是您描述的文档路径,那么您可以使用以下方法:

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

简单地说,
指的是当前上下文项,它已经是book,因为它是谓词之前XPath的最后一部分。

假设
$doc
实际上是一个文档节点,而不是您描述的文档路径,那么您可以使用以下选项:

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

简单地说,
指的是当前上下文项,它已经是book,因为它是谓词之前XPath的最后一部分。

假设
$doc
实际上是一个文档节点,而不是您描述的文档路径,那么您可以使用以下选项:

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

简单地说,
指的是当前上下文项,它已经是book,因为它是谓词之前XPath的最后一部分。

假设
$doc
实际上是一个文档节点,而不是您描述的文档路径,那么您可以使用以下选项:

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

简单地说,
引用当前的上下文项,它已经是book,因为它是谓词之前XPath的最后一部分。

如果
$doc
是您的文档路径,您需要调用
fn:doc($doc)
,以获取文档节点:

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

如果
$doc
是您的文档路径,则需要调用
fn:doc($doc)
,以获取文档节点:

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

如果
$doc
是您的文档路径,则需要调用
fn:doc($doc)
,以获取文档节点:

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

如果
$doc
是您的文档路径,则需要调用
fn:doc($doc)
,以获取文档节点:

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