我有一个xml文档,我想用freemarker解析。 XML文档本身是在我的smooks脚本中使用SAX自动生成的。这个smooks脚本创建了以下XML,其元素名称来自我在工作区中的实际java包名称。
<map>
<entry>
<string>RunReportMsg</string>
<com.web.ws.messages.v1__2.RunReportMsg>
<analyticsReport>
<columns>
<com.web.ws.objects.v1__2.ReportColumn>
<dataType>
<id>
<id>10</id>
</id>
</dataType>
</com.web.ws.objects.v1__2.ReportColumn>
</columns>
<analyticsReport>
</com.web.ws.messages.v1__2.RunReportMsg>
</entry>
</map>
此网站上发布了一个类似的问题。但我无法弄清楚这将如何解决我的问题。
Access XML elements with names containing a period/dot in FreeMarker templates
我知道如何在元素“string”中访问“RunReportMsg”文本。
$ {map.entry.string}
如何使用freemarker中的点分表示法访问以下子元素中的数据?由于元素“com.web.ws.messages.v1__2.RunReportMsg”具有多个句点,因此我不确定如何遍历其他子元素。我需要一种方法来找出以下“id”元素中的数字。
<id>10</id>
我在“.vars”上阅读了freemarker网站上的表达文档。我不确定这是否适用于我的情况。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以使用以下语法:
${map.entry["com.web.ws.messages.v1__2.RunReportMsg"].analyticsReport.columns["com.web.ws.objects.v1__2.ReportColumn"].dataType.id.id}