【发布时间】:2016-05-10 03:09:26
【问题描述】:
我的 FreeMarker FTL 代码如下:
<a class="launch" href="${item.target-url}">View Now</a>
我正在从以下 XML 中提取一个 sn-p:
<item>
<target-url>www.test.com/jimmy</target-url>
</item>
<item>
<target-url></target-url>
</item>
<item>
<target-url></target-url>
</item>
我认为这应该可行。
但是当我查看我的 html 页面时,我收到以下错误:
尝试使用 FTL 模板进行转换时出现异常! freemarker.core.NonNumericalException:对于“-”左侧操作数:需要一个数字,但这评估为序列+哈希(包装器:fedom.NodeListModel):==> item.target [在模板“marketing/widgets/ freemarker/newblogpost-update.ftl" at line 31, column 105] ---- 提示:这个 XML 查询结果不能用作字符串,因为它必须正好包含 1 个 XML 节点,但它包含 0 个节点。也就是说,构造 XML 查询没有找到匹配项。 ---- ---- FTL 堆栈跟踪(“~”表示与嵌套相关): - 失败于:${item.target - url?size != 0} [in template "marketing/widgets/freemarker/newblogpost- update.ftl”在第 31 行,第 103 列] ----
我认为我收到此错误是因为我的 XML 包含多个不包含数据的节点 ()。我的一些节点可能包含数据,但不是全部。有什么办法可以解决这个问题吗?
【问题讨论】:
标签: xml freemarker