【freemaker】之获取xml的值

测试代码

    @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>

效果

原文地址:https://www.cnblogs.com/gyjx2016/p/6027058.html