如何使PG版本9.2中的>
符号显示?我不希望它显示为>
。
在postgreSQL中查询
SELECT
XPATH ('/BehaviorReportingRanges/BehaviorReportingRange/Range/text()',
xmlparse(content
'<BehaviorReportingRanges>
<BehaviorReportingRange>
<Range>> 3</Range>
</BehaviorReportingRange>
</BehaviorReportingRanges>'))
版本9.1中的结果:
{"> 3"} -- desired result
导致版本9.2.3:
"{"> 3"}" -- not desired result
请指点什么?
非常感谢!
答案 0 :(得分:2)
好吧,如果你
CREATE LANGUAGE plpythonu;
,您可以执行以下操作:
create or replace function unescape(x varchar)
returns varchar language plpythonu as $$
from xml.sax.saxutils import unescape
return unescape(x)
$$;
然后,您的查询可以变为:
SELECT unescape( concat( (
XPATH ('/BehaviorReportingRanges/BehaviorReportingRange/Range/text()',
xmlparse(content
'<BehaviorReportingRanges>
<BehaviorReportingRange>
<Range>> 3</Range>
</BehaviorReportingRange>
</BehaviorReportingRanges>')) )[1]
) );
您需要添加索引以从xpath的数组结果中选择元素,并且concat将从xml转换为字符串数据类型。
您也可以直接应用unescape函数 - 但结果字符串是格式化的xml数组。