带冒号的 freemarker 节点名

freemarker nodename with colon

我在获取其中包含“:”的节点时遇到问题。例如我有这个 xml:

<item>
   <title>Title</title>
   <description>Description</description>
   <content:encoded>Some content</content:encoded>
</item>

所以我使用 freemarker 来提取节点,当我有 ${item.title} 时,我从中获取值但是当我有 ${item.content} 时,我得到 freemarker 错误。以前,我一直只使用“。”作为分隔符和“@”用于访问节点属性(例如 item.@attributeName),但这次,我认为是因为“:”我收到了错误。所以我的问题是:如何获取节点名称中有冒号的节点值?试图搜索互联网和 freemarker 网站,但到目前为止没有运气。我会花更多的时间进行研究,但它对时间很敏感,所以我不得不寻求你们的帮助。非常感谢任何 suggestions/hints。提前致谢。

冒号是一个(未来的)运算符,所以你要么写 item["content:encoded"],要么从 2.3.22 开始(将于 2015-03-01 发布)item.content\:encoded.

正如我之前在评论中所说,就我而言,您需要在 ftl 文件中声明 ns_prefixes 并使用 ${item.["content:encoded"]}。所以这是命名空间问题。谢谢大家!