Xml XPath id()函数

Xml XPath id()函数,xml,function,xpath,Xml,Function,Xpath,我在XPath中找不到任何关于id()函数的好解释。它有什么作用?你如何使用它 从可用的描述来看,它似乎会为您提供节点的id 所以我像这样玩,但有个错误: //bookstore/id(book) 然后有了一个小小的爱好者,试着 //bookstore/book[name = id(book/@category)] 它没有返回错误,但没有命中 有人能给我解释一下这个功能吗,还有未来的Stack粉丝和Google用户 下面是我正在使用的XML: <?xml version="1.0" e

我在XPath中找不到任何关于
id()
函数的好解释。它有什么作用?你如何使用它

从可用的描述来看,它似乎会为您提供节点的
id

所以我像这样玩,但有个错误:

//bookstore/id(book)
然后有了一个小小的爱好者,试着

//bookstore/book[name = id(book/@category)]
它没有返回错误,但没有命中

有人能给我解释一下这个功能吗,还有未来的Stack粉丝和Google用户

下面是我正在使用的XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book category="COOKING">
  <title lang="en">Everyday Italian</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J. K. Rowling</author>
  <price>29.99</price>
</book>

<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="WEB">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

<book category="OPENSOURCE">
  <title lang="en">Open Source</title>
  <year>2003</year>
  <price>39.95</price>
</book>

<book category="WEB">
  <title lang="en">WEB</title>
  <year>2012</year>
  <price>21.99</price>
</book>

</bookstore>

日常意大利语
吉娅达·德·劳伦蒂斯
2005
30
哈利·波特
J.K.罗琳
29.99
XQuery启动
詹姆斯·麦戈文
伯特纳
库尔特·卡格尔
詹姆斯·林恩
瓦迪亚纳坦·纳加拉扬
2003
49.99
学习XML
埃里克·T·雷
2003
39.95
开源
2003
39.95
网状物
2012
21.99
如果您在DTD中已定义,则似乎只会使用
id()
函数

我还遇到了这个问题,它讨论了DTD中的ID类型以及如何定义它

我找不到任何好的解释

让我推荐我的书;-)


我认为id()函数对您没有帮助,因为我认为您的源文档没有任何id属性。它只有很少的属性,而且它拥有的属性不是唯一的,因此它们不能是id。

您应该使用包含
id
属性的文档,不是吗?:)