xml - 提取存储在 postgresql 表中的 XML 文件

标签 xml postgresql

我有一个存储在 postgresql 表中的 XML 文件,它包含数组属性类型,包含如下值

<Type>
      <V Idx="1">Cat</V>
      <V Idx="2">Mouse</V>
      <V Idx="3">Tree</V>
   </Type>

我想使用 postgresql 查询提取“Cat”的 Idx 值。

最佳答案

您可以使用 xpath() 来使用 XPath 表达式提取部分 XML。它将返回一个匹配项数组,因此如果您需要一个标量,则需要选择所需的索引。

要获取文本为 Cat 的第一个 /Type/VIdx 属性,您可以使用:

SELECT (xpath('(/Type/V[text()="Cat"]/@Idx)[1]', nmuloc))[1] idx
       FROM elbat;

db<>fiddle

关于xml - 提取存储在 postgresql 表中的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53928270/

相关文章:

java - JaxB 解码 - 创建对象引用

sql - 我如何获得大于平均值的结果(我没有的平均值)?

c# - 亚马逊 MWS 的产品 Feed

php - 用html阵营解析mysql到xml

java - 如何将带有 jdbc 准备语句的 SqlDescriptor 写入 tsrange 列?

sql - 无法在 bash 脚本中使用 postgresql 函数

java - 如何使用 jOOQ 基于复合数据类型构建条件?

sql - 为每个用户选择最新条目,而不使用 group by (postgres)

c# - 读取大型 xml 文件并将其数据提取到 C#.Net 项目中的表单应用程序中

c# - 在 C# 中写入 XML 时阻止 CDATA 标记被输出转义