2010-06-25 2 views
1

Я хочу преобразовать XML-файл в JSON. Проблема заключается в том, у меня есть структураШаблон FreeMarker JSON - Дайте ему узел? NextSibling, чтобы узнать, есть ли у текущего узла родной брат?

<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 
    }**,**] 

Но всегда есть запятая «» после Laste детей. С freemarker существует способ узнать, есть ли у узла родительский элемент, дочерние элементы или что-то еще, например, родительский узел node, node? Children. Но нет возможности узнать, есть ли у него брат.

Как известно freemarker, если текущий узел имеет родного брата?

ответ

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

Смежные вопросы