Smooks - XML-XML 转换删除输出中转义的字符 XML
Smooks - XML-XML transformation removes the character escaping in the output XML
我正在 freemarker 配置模板的帮助下使用 Smooks 执行 XML-XML 转换。
但是,当我的输入 XML 转义字符时
<Retail>H&M</Retail>
转换后的输出 XML 将只有
<Retail>H&M</Retail>
转义被移除,这使得输出XML无效。
我该如何解决这个问题?
这是我的 freemarker 模板
<?xml version="1.0"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
<params>
<param name="stream.filter.type">SAX</param>
<param name="default.serialization.on">false</param>
</params>
<resource-config
selector="combinedResponse">
<resource>org.milyn.delivery.DomModelCreator</resource>
</resource-config>
<ftl:freemarker applyOnElement="combinedResponse">
<ftl:template><!--
<BODY>
<Retail>${combinedResponse.Retail}</Retail>
</BODY>
-->
</ftl:template>
</ftl:freemarker>
参见 Freemarker 的 auto-escaping,您可以通过添加以下 header:
来覆盖它
<#ftl output_format="XML">
the output format of a template can be enforced in the the ftl header
如果不起作用,请尝试添加
<#ftl output_format="XML" auto_esc=true>
If escaping doesn't happen after adding the above ftl header, then <#ftl output_format="XML" auto_esc=true> might helps (and that means that FreeMarker was configured to use "disable" auto-escaping policy, which is generally not recommended).
我正在 freemarker 配置模板的帮助下使用 Smooks 执行 XML-XML 转换。
但是,当我的输入 XML 转义字符时
<Retail>H&M</Retail>
转换后的输出 XML 将只有
<Retail>H&M</Retail>
转义被移除,这使得输出XML无效。
我该如何解决这个问题?
这是我的 freemarker 模板
<?xml version="1.0"?>
<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
<params>
<param name="stream.filter.type">SAX</param>
<param name="default.serialization.on">false</param>
</params>
<resource-config
selector="combinedResponse">
<resource>org.milyn.delivery.DomModelCreator</resource>
</resource-config>
<ftl:freemarker applyOnElement="combinedResponse">
<ftl:template><!--
<BODY>
<Retail>${combinedResponse.Retail}</Retail>
</BODY>
-->
</ftl:template>
</ftl:freemarker>
参见 Freemarker 的 auto-escaping,您可以通过添加以下 header:
来覆盖它<#ftl output_format="XML">
the output format of a template can be enforced in the the ftl header
如果不起作用,请尝试添加
<#ftl output_format="XML" auto_esc=true>
If escaping doesn't happen after adding the above ftl header, then <#ftl output_format="XML" auto_esc=true> might helps (and that means that FreeMarker was configured to use "disable" auto-escaping policy, which is generally not recommended).