所以,我正在使用jsoup,当我显示返回的内容时,我得到:
{{#ifcond="" pagetitle="" this.name}}
我这样做local.htmlObj.Body().Html()
当我需要它返回时:
{{#ifCond PAGETITLE this.NAME}}
这就是我正在做的事情
<cfset paths = [] />
<cfset paths[1] = expandPath("/javaloader/lib/jsoup-1.7.1.jar") />
<cfset loader = createObject("component", "javaloader.JavaLoader").init( paths ) />
<cfset obj = loader.create( "org.jsoup.Jsoup" ) />
<cfset local.htmlObj = local.jsoupObj.parse( local.template ) />
<cfloop array="#local.htmlObj.select('.sidebar_left')#" index="element">
<cfif element.attr('section') EQ "test">
<cfset element.append('HTML HERE') />
</cfif>
</cfloop>
local.template
是我的模板,由大量不同的车把文件组成。我正在构建一个返回的把手文件。
答案 0 :(得分:2)
问题是JSoup在允许您访问之前尝试解析无效的HTML。如果您获取以下HTML(在此question中看到),则可以看到稍微容易理解的此行为示例:
<p>
<table>[...]</table>
</p>
它将返回:
<p></p>
<table>[...]</table>
在你的情况下,Handelbars代码被视为属性,在有效的html中总是有一个值(想想checked="checked"
)。据我所知,没有办法禁用此行为。这是你正在尝试的工作的错误工具。更简洁的方法是将文档作为流获取并将其保存为字符串。