2016-04-26 133 views
2

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

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

我试图在上面的示例XML和下面的查询匹配数10管理员角色不会返回TRUE 8管理员结合为好。

select xpath('//role/@num="8" and //role/text()="admin"', '<above xml>'); 

请建议是否有更好的方法来匹配确切的指标组合。

感谢。

回答

3

我试图以配合管理员的角色数10

尝试:

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

或者,如果被请求管理员的name元素:

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

这工作。非常感谢您的帮助。我需要稍微调整一下我的查询,因为我在where子句中使用了这个查询,并且之前的查询返回了true/false,因为此查询返回了值。 – Prasad