在WSO2中如何将XML转换为字符串且不转义尖括号
在WSO2中将XML转换为无转义尖括号的字符串
下面给你几种在WSO2里实现的实用方式:
方法1:用Script Mediator(Groovy脚本)
直接通过Groovy脚本获取XML的原始字符串表示,不会转义尖括号:
def xmlPayload = mc.getPayloadXML(); def xmlString = xmlPayload.toString(); mc.setProperty("XML_STRING", xmlString);
执行后,XML的原始字符串会被存在XML_STRING属性里,后续流程可以直接调用这个属性。
方法2:用XSLT Mediator
编写一个简单的XSLT样式表,把XML序列化为无转义的字符串:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet>
在WSO2的序列中引用这个XSLT mediator,它会直接输出原始XML的字符串形式,尖括号不会被转义。
方法3:用PayloadFactory Mediator(配合禁用输出转义)
如果需要将XML字符串作为输出或者某个元素内容,可借助disable-output-escaping来实现:
<payloadFactory media-type="xml"> <format> <xsl:text disable-output-escaping="yes"><![CDATA[$1]]></xsl:text> </format> <args> <arg evaluator="xml" expression="$body/*"/> </args> </payloadFactory>
这个配置会直接保留XML的原始尖括号,不会进行转义处理。
内容的提问来源于stack exchange,提问作者Ayub Jamal
相关产品推荐
相关产品推荐

