Synapse中如何去除XML命名空间的多余转义反斜杠?
解决Lookup Activity输出XML字符串时多余反斜杠转义的问题
方法1:调整SQL语句,避免触发自动转义
通过字符拼接直接生成目标格式,绕开SQL字符串中"被额外转义的问题:
SELECT CONCAT( 'xmlns:xsl=', CHAR(38), 'quot;', 'http://www.w3.org/1999/XSL/Transform', CHAR(38), 'quot;>' ) AS xmlbody FROM temptable;
其中CHAR(38)对应XML实体的&符号,拼接后直接生成xmlns:xsl="http://www.w3.org/1999/XSL/Transform">,Lookup Activity不会为其添加多余反斜杠。
方法2:在Lookup后用派生列清理转义符
若无法修改SQL,可在Lookup Activity后添加派生列活动,通过替换函数移除多余反斜杠:
在派生列表达式中输入:
replace(xmlbody, '\"', '"')
该表达式会将输出中的\"替换为",得到目标格式。
方法3:用SQL原生FOR XML生成XML结构
放弃手动拼接,让SQL自动处理XML命名空间的转义逻辑:
SELECT 'http://www.w3.org/1999/XSL/Transform' AS [@xmlns:xsl] FOR XML PATH(''), TYPE
生成的XML会自动包含正确的命名空间属性,后续提取字符串时不会出现多余转义。
内容的提问来源于stack exchange,提问作者user15382501
相关产品推荐
相关产品推荐

