【发布时间】:2018-12-26 06:32:09
【问题描述】:
我有一个 XML 文件存储在 postgresql 表中,其中包含数组属性类型包含的值如
<Type>
<V Idx="1">Cat</V>
<V Idx="2">Mouse</V>
<V Idx="3">Tree</V>
</Type>
我想使用 postgresql 查询提取“Cat”的 Idx 值。
【问题讨论】:
标签: xml postgresql
我有一个 XML 文件存储在 postgresql 表中,其中包含数组属性类型包含的值如
<Type>
<V Idx="1">Cat</V>
<V Idx="2">Mouse</V>
<V Idx="3">Tree</V>
</Type>
我想使用 postgresql 查询提取“Cat”的 Idx 值。
【问题讨论】:
标签: xml postgresql
您可以使用xpath() 来使用XPath 表达式提取部分XML。它会返回一个匹配的数组,所以如果你想要一个标量,你需要选择所需的索引。
要获取第一个具有Cat 文本的/Type/V 的Idx 属性,您可以使用:
SELECT (xpath('(/Type/V[text()="Cat"]/@Idx)[1]', nmuloc))[1] idx
FROM elbat;
【讨论】: