问题:我可以在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?
答案 0 :(得分:3)
我建议使用一个简单的功能。
create or replace function xml_escape(s text) returns text as
$$
select replace(replace(replace(s, '&', '&'), '>', '>'), '<', '<');
$$
language sql immutable strict;
答案 1 :(得分:1)
如果您正在写一个HTML客户端,那么您将不得不通过HTML转义它以显示原始HTML。
我认为你主要是一个C#开发人员,那么静态方法HttpUtility.HtmlEncode()
就可以了。