我有一个像这样的XML节点:
<table version="1.0" border="1" rules="all" cellpadding="10">
.
.
.
</table>
我希望Freemarker对此“回显”,但不包括version属性,给出以下内容:
<table border="1" rules="all" cellpadding="10">
.
.
.
</table>
我相信我需要使用这样的宏:
<#macro table>
<table [include all attributes except version]>
<#recurse>
</table>
</#macro>
但是我不知道“ [包括除版本以外的所有属性]”部分的内容。
我该怎么做呢?
FreeMarker的XML包装器并不是真正用于将XML转换为类似的XML,它只是公开数据的一种方式...但是,如果您稍加拉伸,毕竟有可能(使用http://freemarker-online.kenshoo.com /):
模板:
<#visit doc>
<#macro table>
<table<@atts except=['a', 'c'] />>
<#recurse>
</table>
</#macro>
<#macro atts element=.node except=[]>
<#list element.@@ as att>
<#if !except?seqContains(att.@@qname)> ${att.@@qname}="${att?xml}"</#if><#t>
</#list>
</#macro>
资料模型:
doc=<table a="1" b='2' c='3' />
但是,如果您具有属于名称空间的属性,则存在一些陷阱。然后,您将需要使用声明前缀<#ftl nsPrefixes="...">
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句