假设我有以下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>
任何提示?提前致谢。
尝试
原文链接:https://www.f2er.com/xml/294032.html//book[title/@lang = 'it']
这读:
>获得所有书元素
>至少有一个标题
>其具有属性lang
>具有值“it”
你可能会发现this有用 – 这是一篇题为“XPath in Five Paragraphs”由Ronald Bourret的文章。
但是在所有的诚实,// book [title [@ lang =’it’]]和以上应该是等价的,除非你的XPath引擎有“问题”。因此,它可能是代码或示例XML中的一些您没有显示的东西 – 例如,您的示例是一个XML片段。可能是根元素有一个命名空间,你不会在你的查询中计数?你只告诉我们它没有工作,但你没有告诉我们你得到了什么结果。