如果父元素的名称在freemarker中有点,如何读取子元素中的文本
Posted
技术标签:
【中文标题】如果父元素的名称在freemarker中有点,如何读取子元素中的文本【英文标题】:how to read text in child elements if the parent element's name has dots in freemarker 【发布时间】:2013-12-20 07:02:55 【问题描述】:我有一个想要使用 freemarker 解析的 xml 文档。 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 站点中有关表达式的文档。我不确定这是否适用于我的情况。
非常感谢任何帮助。
【问题讨论】:
【参考方案1】:您可以使用以下语法:
$map.entry["com.web.ws.messages.v1__2.RunReportMsg"].analyticsReport.columns["com.web.ws.objects.v1__2.ReportColumn"].dataType.id.id
【讨论】:
这正是我所需要的。非常感谢@Obourgain。 很高兴为您提供帮助。不要犹豫,接受答案(见here)以上是关于如果父元素的名称在freemarker中有点,如何读取子元素中的文本的主要内容,如果未能解决你的问题,请参考以下文章