具有多个条件的XPath

我可以使用哪种XPath来select具有指定名称属性的任何类别以及具有指定值的任何子节点作者。

我已经尝试了下面的path的不同变化,没有成功:

//quotes/category[@name='Sport' and author="James Small"] 

XML:

 <?xml version="1.0" encoding="utf-8"?> <quotes> <category name="Sport"> <author>James Small<quote date="09/02/1985">Quote One</quote><quote date="11/02/1925">Quote nine</quote></author> </category> <category name="Music"> <author>Stephen Swann <quote date="04/08/1972">Quote eleven</quote></author> </category> </quotes> 

尝试:
//category[@name='Sport' and ./author/text()='James Small']

用途

 /category[@name='Sport' and author/text()[1]='James Small'] 

或使用:

 /category[@name='Sport' and author[starts-with(.,'James Small')]] 

尽可能避免使用伪操作符是一个很好的规则,因为它的评估通常会很慢。

也:

 ./somename 

相当于:

 somename 

所以build议使用后者。

问题不清楚,但我知道你需要select一个具有名称属性的类别,并应具有指定值的子作者,纠正我,如果我worng

这里是一个xpath

 //category[@name='Required value'][./author[contains(.,'Required value')]] eg //category[@name='Sport'][./author[contains(.,'James Small')]]