当前位置: 首页 > 知识库问答 >
问题:

如何使用FreeMarker匹配多个节点?

盖翰池
2023-03-14
<a class="launch" href="${item.target-url}">View Now</a>
<item>
 <target-url>www.test.com/jimmy</target-url>    
</item>
<item>
 <target-url></target-url>  
</item>
<item>
 <target-url></target-url>  
</item>

尝试使用FTL模板进行转换时出现异常!freemarker.core.nonNumericalException:对于“-”左手操作数:需要一个数字,但它的计算结果是序列+散列(包装器:f.e.dom.nodelistmodel):==>item.target[在模板“marketing/widgets/freemarker/newblogpost-update.ftl”中,第31行,第105列]----提示:这个XML查询结果不能用作字符串,因为它必须正好包含1个XML节点,但它包含0个节点。也就是说,构造XML查询没有找到匹配项。------FTL堆栈跟踪(“~”表示与嵌套相关):-失败位置:${item.target-URL?size!=0}[在模板“marketing/widgets/freemarker/newblogpost-update.FTL”第31行,第103列]中---

我认为我得到这个错误是因为我的XML包含多个不包含数据的节点()。我的一些节点可能包含数据,但不是全部。我有办法解决这个问题吗?

共有1个答案

沈成天
2023-03-14

您将得到一个错误,因为您有-sign in XML标记,并且FreeMarker将其视为减号:${item.target-key}

所以你必须使用这种结构:

${item["target-url"]}

常见问题

 类似资料:
  • 问题内容: 我想做类似于“和”过滤器示例的操作,除了每个示例中都带有“应该”的术语,而不是示例中的字段类型。我提出以下内容: 但是,我收到此错误: 还有另一种方法可以执行我正在尝试执行的操作,还是我走在正确的轨道上?还是在Elasticsearch中这是不可能的? 问题答案: 每个布尔查询子句可以包含多个子句。字词查询(http://www.elasticsearch.org/guide/refe

  • null 但问题是我的regex不是。

  • 问题内容: 我正在使用语句,以便将输入插入到SQL Server数据库表中。如何在块中执行多个条件。请参考下面的代码。 当前,它仅执行此行。如何执行条件中的所有3行()。 前任 : 这就是我的期望。我只想更新旧字段()并将记录插入同一张表。我不能用逗号分隔这些语句。SQL发出 语法错误 谢谢你。 问题答案: 您可以使用 它来实现: 请记住,此方法有一些局限性,更多信息: MS Connect

  • 我的Cosmos DB中有以下json: 现在我尝试对 Technology.id 和评级应用过滤器。这意味着我想选择所有条目,例如评级为1的C#和评级为2的SQL。 大约 因为技术代表是一个不起作用的数组。 我也玩过,但我没有让它工作。 如何编写这样的查询?

  • 问题内容: 假设我有一个包含A,B,C,D列的表,并且我想对A列和C列进行匹配 我看到您可以匹配sqlite中的单个列或所有列,即 是否可以仅匹配A和C列?如果没有,你们如何解决这个问题? 感谢您的建议! 问题答案: 我认为您不能在单个FTS查询中使用多个MATCH运算符。使用column_name:target_term通过一次全文搜索来搜索多列。 http://www.sqlite.org/f

  • 如何精确匹配img标记的多个实例?我读了一些关于preg_match的教程,但从未真正理解。 我以此为基础: 我做了一个小的像正则表达式: 在这之后,我就卡住了。我如何继续匹配所有直到两个字符串的末尾? 我在PHP网站上发现了数组部分: 使用我的代码,我如何获得图像URL和alt标签? 谢谢