如何使用Freemarker模板从XML中删除节点?
输入:
<ns:Response>
<ns:MessageBody>
<Header title="This title node needs to be removed."/>
<ns:Items>
<ns:Item>
<ns:ItemId>1</ns:ItemId>
</Item>
</ns:Items>
</ns:MessageBody>
</ns:Response>
输出:
<ns:Response>
<ns:MessageBody>
<ns:Items>
<ns:Item>
<ns:ItemId>1</ns:ItemId>
</Item>
</ns:Items>
</ns:MessageBody>
</ns:Response>
答案 0 :(得分:0)
FreeMarker的XML支持就是在您的模板上下文中有一些XML(也可能是非XML)的情况下,并且您希望从中提取一些信息并在生成的HTML报告中显示或不管你做什么。为了将XML转换为类似的XML,嗯......它可能不太合适。无论如何,假设doc
是W3C DOM Document
:
<#ftl ns_prefixes={'D': 'foo'}>
<#visit doc />
<#macro @text>${.node?xml}</#macro>
<#macro @element>
<#if .node?node_name != 'Header'>
${.node.@@start_tag}<#recurse>${.node.@@end_tag}<#t>
</#if>
</#macro>