Freemarker:创建Xml节点

时间:2013-10-31 18:24:51

标签: xml freemarker

这是在Freemarker中创建Xml节点的方法吗? <field type="select" value="country" name="country" >
是否可以通过此Xml元素创建field节点?我在freemarker文档中的任何地方都找不到它。

2 个答案:

答案 0 :(得分:2)

如果您在Java中的String中使用XML,并且希望将其作为模型中的XML节点放入,那么它会向您显示Freemarker documentation中的内容。

由于某种原因,示例代码从文件中读取。您也可以从org.xml.sax.InputSource解析。如果您从String开始,则可以创建InputSource,如下所示:

new InputSource(new StringReader(xmlInString))

如果您 Freemarker模板语言(FTL),并且您有一个要解析的XML字符串,则需要将解析器作为工具放入模型中。在Java模型设置中,您可能会遇到以下情况:

model.put("parseXML", new XMLParserModel());

XMLParserModel是您编写的扩展TemplateModelEx的类。您将实现exec方法,该方法需要String(它将获取列表,但您将获取第一个条目)并返回带有已解析结果的TemplateNodeModel。在FTL中,它看起来像这样:

<#assign myXMLNode = parseXML(xmlString)>

答案 1 :(得分:0)

另一种选择是使用 jstl xml 标签库。

<#assign x=JspTaglibs['http://java.sun.com/jsp/jstl/xml']/>
<#assign xmlString = '<doc>text</doc>'/>
<@x.parse var="xmlDoc" doc=xmlString/>
<#-- now process variable 'xmlDoc' using jsp or freemarker -->