我能够使用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>');
请建议是否有更好的方法来匹配精确的索引组合。
谢谢。
最佳答案
我试图将管理员角色与10匹配
尝试:
'//role[@num="10" and text()="admin"]'
或者如果请求管理员的
name
元素:'//name[role[@num="10" and text()="admin"]]'