0

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

4

2 回答 2

2

如果您在 Java 中有 XML String,并且您想将其作为 XML 节点放入模型中,它会在Freemarker 文档中向您展示如何操作。

出于某种原因,示例代码从文件中读取。您也可以从org.xml.sax.InputSource. 如果你从一个开始,String你可以创建一个InputSource这样的:

new InputSource(new StringReader(xmlInString))

如果您使用的是Freemarker模板语言 (FTL),并且要解析 XML 字符串,则需要将解析器作为工具放入模型中。在您的 Java 模型设置中,您将拥有如下内容:

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

XMLParserModel是您编写的扩展类TemplateModelEx。您将实现一个exec采用 a 的方法String(它将采用一个列表,但您将获取第一个条目)并返回 aTemplateNodeModel以及您的解析结果。在 FTL 中,它看起来像这样:

<#assign myXMLNode = parseXML(xmlString)>
于 2013-11-01T14:43:18.810 回答
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 -->

于 2021-01-15T16:22:53.733 回答