xml – XPath:获取节点,其中子节点包含一个属性

假设我有以下XML:
<book category="CLASSICS">
  <title lang="it">Purgatorio</title>
  <author>dante Alighieri</author>
  <year>1308</year>
  <price>30.00</price>
</book>

<book category="CLASSICS">
  <title lang="it">Inferno</title>
  <author>dante Alighieri</author>
  <year>1308</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <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>

我想做一个xpath,回到所有的书节点,有一个语言属性为“it”的标题节点。

我的尝试看起来像这样:

// book [title [@ lang =’it’]]

但是没有工作。我希望回到节点:

<book category="CLASSICS">
  <title lang="it">Purgatorio</title>
  <author>dante Alighieri</author>
  <year>1308</year>
  <price>30.00</price>
</book>

<book category="CLASSICS">
  <title lang="it">Inferno</title>
  <author>dante Alighieri</author>
  <year>1308</year>
  <price>30.00</price>
</book>

任何提示?提前致谢。

尝试
//book[title/@lang = 'it']

这读:

>获得所有书元素

>至少有一个标题

>其具有属性lang

>具有值“it”

你可能会发现this有用 – 这是一篇题为“XPath in Five Paragraphs”由Ronald Bourret的文章

但是在所有的诚实,// book [title [@ lang =’it’]]和以上应该是等价的,除非你的XPath引擎有“问题”。因此,它可能是代码或示例XML中的一些您没有显示的东西 – 例如,您的示例是一个XML片段。可能是根元素有一个命名空间,你不会在你的查询中计数?你只告诉我们它没有工作,但你没有告诉我们你得到了什么结果。

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念