xml – 如何在postgres 9.2版中转义“>”字符
发布时间:2020-12-16 23:31:15 所属栏目:百科 来源:网络整理
导读:我如何制作标志显示在PG版本9.2中?我不希望它显示为 gt;. 在postgreSQL中查询 SELECT XPATH ('/BehaviorReportingRanges/BehaviorReportingRange/Range/text()',xmlparse(content 'BehaviorReportingRanges BehaviorReportingRange Range 3/Range /Behavior
我如何制作>标志显示在PG版本9.2中?我不希望它显示为& gt;.
在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 有什么指针吗? 非常感谢 ! 解决方法
好吧,如果你
创建语言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数组. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |