对于对第三方api的调用,我需要准备一些xml内容,以便在http主体内容中使用。
为此,xml是由rpg ile程序中的xmlserialize sql函数生成的。除了管理内部带有&symbol的字段外,一切都正常:在本例中,第三方api拒绝对无效xml内容的请求,即使sql进行了转换 &
进入 &
它自己。
sql语句如下所示:
exec sql
select xmlserialize(
xmldocument(
xmlelement(
name "Info",
xmlconcat(
xmlelement(name "SedeGls" , :xmlGlsCodSede),
xmlelement(name "CodiceClienteGls" , :xmlGlsCodCli ),
xmlelement(name "PasswordClienteGls" , :xmlGlsPassCli),
xmlagg(
xmlelement(
name "Parcel",
xmlconcat(
xmlelement(name "CodiceContrattoGls" , :xmlGlsCodCon ),
xmlelement(name "RagioneSociale" , trim(:bor_ORAGDE) ),
...other elements here...
)
)
)
) as clob(1M)
)
into :xmlData
from TAB_COLLI coc;
现在,数据库字段bor\u oragde可能包含无效的xml字符,如 &
,但我不想用数据库中的其他字符替换这些字符。我宁愿使用cdata节来保存此数据库值,以便得到如下结果:
<RagioneSociale><![CDATA[my personal content & content]]></RagioneSociale>
尽管做了很多努力和尝试,但我还没有找到任何解决办法。简单串联 <![CDATA
以及 trim(:bor_ORAGDE)
以及 ]]>
不起作用,因为开始<和结束>符号被转换为相应的实体 <
以及 >
,所以忽略了部分。
另外,在“as clob(1m)”之后向结果变量添加ccdid(1208)也不起作用,也不能使用xmltext Package 内容。
我不敢相信ibm错过了这种可能性,所以我想我还没有在红皮书中找到答案,或者我错过了一些东西。
这有什么意义吗?
谢谢您
暂无答案!
目前还没有任何答案,快来回答吧!