xml – XPath:获取节点,其中子节点包含一个属性
发布时间:2020-12-16 08:14:48 所属栏目:百科 来源:网络整理
导读:假设我有以下XML: book category="CLASSICS" title lang="it"Purgatorio/title authorDante Alighieri/author year1308/year price30.00/price/bookbook category="CLASSICS" title lang="it"Inferno/title authorDante Alighieri/author year1308/year pri
假设我有以下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片段。可能是根元素有一个命名空间,你不会在你的查询中计数?你只告诉我们它没有工作,但你没有告诉我们你得到了什么结果。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |