freemarker nodename with colon

时间:2015-02-19 17:15:14

标签: xml freemarker

我遇到了一个问题,即获取包含“:”的节点。例如,我有这个xml:

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

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

2 个答案:

答案 0 :(得分:1)

Colon是(未来)运营商,因此您要么写item["content:encoded"],要么从2.3.22开始(将于2015-03-01开始)item.content\:encoded

答案 1 :(得分:0)

正如我之前在评论中所说,在我的情况下,您需要在ftl文件中声明ns_prefix并使用$ {item。[&#34; content:encoded&#34;]}。所以这是名称空间问题。谢谢大家!