我能够使用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中将admin角色与数字10匹配,并且下面的查询也为8-admin组合返回TRUE。
select xpath('//role/@num="8" and //role/text()="admin"', '<above xml>');
请建议是否有更好的方法来匹配精确的索引组合。
感谢。
答案 0 :(得分:5)
我试图将管理员角色与数字10匹配
尝试:
'//role[@num="10" and text()="admin"]'
或者,如果请求管理员的name
元素:
'//name[role[@num="10" and text()="admin"]]'