我可能在这里滥用Freemarker,但我希望能够使用它从XML文档的外部剥离包装元素,例如:
<br:wrap xmlns:br="http://demo.tempuri.com/">
<br:borrower>
<br:id>111-11-1111</br:id>
<br:ssn>111-11-1111</br:ssn>
<br:city>Los Angeles</br:city>
<br:first>John</br:first>
<br:last>Smith</br:last>
<br:phone>310-000-0000</br:phone>
<br:state>CA</br:state>
<br:zip>90025</br:zip>
</br:borrower>
</br:wrap>
我想删除外部<wrap/>
元素。使用以下方法选择内部文档很容易:
<#ftl ns_prefixes={"D":"http://demo.tempuri.com"}>
<#assign borrower = doc.wrap.borrower>
{ "result" : "${borrower}" }
这里的问题是第3行将导致旧的错误:
对于“$ {...}”内容:预期字符串或其他东西可自动转换为字符串(数字,日期或布尔值),但这已经评估为序列+哈希
如果我确切地知道这个内部文档的内容和结构是什么,我可以通过它来输出标量值,但是一直在变化。我甚至不知道所有内部元素的名称空间(这甚至可能是顶级内部对象的问题)。
我知道我可以使用XSLT轻松处理这种情况,但我更愿意在Freemarker中找到一个简单的解决方案。
有什么想法吗?
答案 0 :(得分:1)
${borrower.@@markup}
应该这样做。