如何在PostgreSQL中对字符串进行XML编码?

问题描述 投票:3回答:2

问题:我可以像这样在Postgres中创建一个XML编码的字符串:

SELECT xmlelement(name name, 'AT&T', null )

现在我要获取xml编码值,即AT&T

但是如果我这样做:

SELECT unnest(xpath('/name/text()', xmlelement(name name, 'AT&T', null )))

然后我得到AT&T,而不是AT&T

如何获得XML编码的值?

此外,是否不可能为xmlelement提供一个空名称,而只是将其转换为varchar?

postgresql plpgsql postgresql-9.1 postgresql-9.2
2个回答
1
投票

如果您正在编写HTML客户端,那么您将不得不对其进行HTML转义以显示原始HTML。

据我所知,您主要是C#开发人员,然后使用静态方法HttpUtility.HtmlEncode()即可。


0
投票

我建议使用一个简单的功能。

create or replace function xml_escape(s text) returns text as
$$
  select replace(replace(replace(s, '&', '&amp;'), '>', '&gt;'), '<', '&lt;');
$$
language sql immutable strict;
© www.soinside.com 2019 - 2024. All rights reserved.