FreeMarker模板JSON - 给它一个节点?nextSibling找出,如果当前节点有一个兄弟?

时间:2010-06-25 07:35:17

标签: xml json freemarker

我想将XML文件转换为JSON。问题是,我有结构

<node id="1">
    <title>Content ...</title>
</node>

<node id="2">
    <title>Secon ...</title>
    <subnodes>

        <node id="3">
        <title>Secon ...</title>
        <subnodes>

            <node id="4">
                <title>Secon ...</title>
            </node>

        </subnodes>

    </node>

    </subnodes>
</node>

我想要JSON格式,如:

{
  "nodeid" : "34",
  "text" : "First level",
  "children" : [{
   "nodeid" : "1",
   "text" : "Content ...",
   "leaf" : true
        ,"children" : [{
   "nodeid" : "2",
   "text" : "Second",
   "leaf" : true
        ,"children" : [{
           "nodeid" : "3",
           "text" : "Third",
           "leaf" : true
    }**,**]

但在最新的孩子之后总会有一个逗号“,”。使用freemarker,有一种方法可以确定节点是否有父节点,子节点或其他节点,如节点?父节点,节点?子节点。但没有机会发现,如果它有一个兄弟姐妹。

如果当前节点有兄弟姐妹,freemarker如何知道?

1 个答案:

答案 0 :(得分:1)

列表循环中有两个特殊的循环变量:

item_index :这是一个数值,包含循环中步进的当前项的索引。

item_has_next :布尔值,用于指示当前项目是否为序列中的最后一项。

示例:

<#assign seq = ["winter", "spring", "summer", "autumn"]>
<#list seq as x>
  ${x_index + 1}. ${x}<#if x_has_next>,</#if>
</#list>

http://freemarker.sourceforge.net/docs/ref_directive_list.html