我遇到了一个问题,即获取包含“:”的节点。例如,我有这个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网站,但到目前为止没有运气。我会花更多的时间研究,但它是时间敏感的,所以我不得不请求你的帮助。任何建议/提示都非常感谢。提前谢谢。
答案 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;]}。所以这是名称空间问题。谢谢大家!