Xml Postgresql xpath搜索属性和元素组合

Xml Postgresql xpath搜索属性和元素组合,xml,postgresql,xpath,Xml,Postgresql,Xpath,我能够使用Postgresql(9.4.x)xpath搜索来匹配xml属性或元素。是否可以搜索属性和元素值的组合 <name> <firstname>test</firstname> <lastname>user</lastname> <role num="10">admin</role> <role num="8">readonly</role> </name>

我能够使用Postgresql(9.4.x)xpath搜索来匹配xml属性或元素。是否可以搜索属性和元素值的组合

<name>
  <firstname>test</firstname>
  <lastname>user</lastname>
  <role num="10">admin</role>
  <role num="8">readonly</role>
</name>

测试
用户
管理
只读
我试图在上面的示例xml中将管理员角色与数字10匹配,下面的查询也会为8-admin组合返回TRUE

select xpath('//role/@num="8" and //role/text()="admin"', '<above xml>');
选择xpath('//role/@num=“8”和//role/text()=“admin”,'');
请建议是否有更好的方法来匹配精确的索引组合

谢谢

我试图将管理员角色与10号匹配

尝试:

或者如果请求管理员的
名称
元素:

'//name[role[@num="10" and text()="admin"]]'

成功了。非常感谢您的帮助。我需要稍微调整一下我的查询,因为我在where子句中使用了这个查询,而我以前的查询返回true/false where作为这个查询返回的值。
'//name[role[@num="10" and text()="admin"]]'