2014-09-05 38 views
0

如何使用Freemarker模板從XML中刪除節點?使用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

你肯定freemarker的是,正確的工具? :) – 2014-09-05 17:38:14

+0

我一直在使用XSLT,並想知道如果Freemarker會有內置的東西。 – vivid 2014-09-05 21:05:20

回答

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'> 
    ${[email protected]@start_tag}<#recurse>${[email protected]@end_tag}<#t> 
    </#if> 
</#macro>