3

问题:我可以像这样在 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?

4

2 回答 2

4

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

create or replace function xml_escape(s text) returns text as
$$
  select replace(replace(replace(s, '&', '&amp;'), '>', '&gt;'), '<', '&lt;');
$$
language sql immutable strict;
于 2020-02-03T07:09:09.823 回答
1

如果您正在写入 HTML 客户端,那么您必须对其进行 HTML 转义以显示原始 HTML。

如我所见,您主要是 C# 开发人员,那么静态方法HttpUtility.HtmlEncode()就可以了。

于 2013-01-09T13:14:21.613 回答