【freemaker】之获取xml的值

时间:2022-05-22 07:32:51

测试代码

    @Test
public void test09() throws Exception{
root.put("doc",
NodeModel.parse(new InputSource(
this.getClass().getResourceAsStream("/fields.xml"))));
freemakerUtil.print(root, "09.ftl");
freemakerUtil.fprint(root, "09.ftl", fn+"09.html");
}

ftl模版文件

<body>
<#--获取属性值-->
${doc.fields.field[0].@id}--${doc.fields.field[0].@name}<br/>
<#--获取元素值-->
${doc.fields.field[0].desc}<br/>
<#--获取doc里fields中id为sex的field下的所有data-->
<#list doc["fields/field[@id='sex']/data"] as data>
<#--获取field的name值 通过@获取属性名字-->
${doc["fields/field[@id='sex']"].@name}
<#--索取节点元素-->
${data.key}---${data.name}
</#list>
</body>

xml文件

<fields>
<field id="sex" name="请选择性别" >
<desc>这个是性别</desc>
<data>
<key>0</key>
<name>男</name>
</data>
<data>
<key>1</key>
<name>女</name>
</data>
<data>
<key>2</key>
<name>未知</name>
</data>
</field>
</fields>

效果

【freemaker】之获取xml的值