gpt4 book ai didi

xml - 从 Postgres 中的 xpath 输出中删除大括号

转载 作者:数据小太阳 更新时间:2023-10-29 01:47:11 26 4
gpt4 key购买 nike

假设我正在使用这个解析 XML

SELECT xpath('/id/text()', '<id>45687</id>'::xml);

输出是

xpath
-------
{45687}

如何在没有花括号的情况下高效输出?所谓高效,我的意思是不必像

这样使用 regexp_replace() 函数
SELECT regexp_replace(xpath('/id/text()', '<id>45687</id>'::xml)::text, '[{}]', '', 'g');

最佳答案

xpath() 不返回字符串,它返回 xml[]。花括号是数组表示法的一部分,而不是数据的一部分 - 您自己使用 text 强制转换添加它们。

对于固定大小的数组,可以通过索引拉出元素:

SELECT (xpath('/id/text()', '<id>45687</id>'::xml))[1]

将此概括为任意数量的元素,您可以执行如下操作:

SELECT string_agg(x::text, ',')
FROM unnest(xpath('/id/text()', '<id>45687</id>'::xml)) u(x)

虽然这可能不会比您的原始版本更有效。通过字符串操作来做到这一点的最简单方法可能是

SELECT btrim(xpath('/id/text()', '<id>45687</id>'::xml)::text, '{}')

关于xml - 从 Postgres 中的 xpath 输出中删除大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25675729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com