gpt4 book ai didi

postgresql - 在 PostgreSQL 中使用 XPath 选择根元素的名称

转载 作者:行者123 更新时间:2023-11-29 12:27:52 24 4
gpt4 key购买 nike

我在 PostgreSQL 9.1.3 表中有一堆 XML 消息,其中有一列 content 类型为 XML)。它们的“类型”并不完全相同,因此我尝试使用如下查询来提取根类型:

SELECT xpath('name(/*)', content) FROM message;

this answer 推荐到类似的 SO 问题。

示例消息是:

<?xml version="1.0" encoding="UTF-8"?>
<WML version="6" xmlns="http://example.com/schemas/WML">...</WML>

对于这种情况,我希望得到结果“{WML}”。不幸的是它只返回一个空数组。将命名空间参数添加到 xpath 或从消息中删除命名空间都没有帮助。

关于 PostgreSQL 邮件列表的讨论似乎是 explain it as a bug在 PostgreSQL 的 XPath 处理中。然而那是在 2008 年,查看 PostgreSQL 源代码会发现那段代码 was changed 2009 年。我不是 PostgreSQL 开发人员,所以我不确定这个错误是否是我的案例的一个因素。

但我想知道是否有解决方法,例如可能有效的替代 XPath 表达式?我宁愿不必求助于正则表达式来解析 XML,但如果您能建议一个简短、有力、健壮的 RE,那总比没有好。

最佳答案

显然,截至 2011 年 6 月,这个问题还没有解决。
我找到了 this thread on pgsql-hackers准确描述了您的问题。

关于postgresql - 在 PostgreSQL 中使用 XPath 选择根元素的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10289743/

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