我有一个如图所示的xml文件,现在我想用freeMarker模板读取它并获得所需的输出
<preDefinedRecipes>
<preDefinedRecipe type="BREAD" name="A" >
<parameterDef ref="SUGAR_QTY" value="3" />
<parameterDef ref="SALT_QTY" value="3" />
<parameterDef ref="OIL_QTY" value="1" />
</preDefinedRecipe>
<preDefinedRecipe type="BREAD" name="B" >
<parameterDef ref="SUGAR_QTY" value="5" />
<parameterDef ref="SALT_QTY" value="7" />
<parameterDef ref="FLOUR_QTY" value="3" />
</preDefinedRecipe>
</preDefinedRecipes>
Op needed:
('A','SUGAR_QTY','3')
('A','SALT_QTY','3')
('A','OIL_QTY','1')
('B','SUGAR_QTY','5')
('B','SALT_QTY','7')
('B','FLOUR_QTY','3')
但是我能够生成的输出是>
('A','SUGAR_QTY','3') ('A','SALT_QTY','3') ('A','OIL_QTY','1') ('A','SUGAR_QTY','5') ('A','SALT_QTY','7') ('A','FLOUR_QTY','3') ('B','SUGAR_QTY','3') ('B','SALT_QTY','3') ('B','OIL_QTY','1') ('B','SUGAR_QTY','5') ('B','SALT_QTY','7') ('B','FLOUR_QTY','3') ('B','FLOUR_QTY','3')
这是模板
<#list doc.preDefinedRecipes.preDefinedRecipe as PDR> <#assign Name = PDR.@name> <#list doc.preDefinedRecipes.preDefinedRecipe.parameterDef as PDEF> ('${PDR[0].@name}','${PDEF.@ref}','${PDEF.@value}') </#list> </#list>
我想知道如何读取列表的索引号,以便像嵌套的for循环一样进行迭代。Freemarker的新手,任何指导将不胜感激。预先感谢,
我有一个如图所示的xml文件,现在我想用freeMarker模板读取它并获得所需的输出
内部#list
应该是这样的:<#list PDR.parameterDef as PDEF>
。
这两个#list
-不会进行任何通信。在原始代码中,内部的#list
列出了文档的所有parameterDef
-,然后一次又一次地对文档的每个preDefinedRecipe
执行此操作。