0

所以,我正在使用 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是我的模板,它由大量不同的车把文件组成,我为不同的地方拉动。我正在构建一个返回的车把文件。

4

1 回答 1

2

问题是 JSoup 在允许您访问它之前试图解析无效的 HTML。如果您获取以下 HTML(见此问题),则可以看到更容易理解的此行为示例:

<p>
<table>[...]</table>
</p>

它将返回:

<p></p>
<table>[...]</table>

在您的情况下,Handelbars 代码被视为在有效 html 中始终具有值的属性(想想checked="checked")。据我所知,没有办法禁用此行为。对于您正在尝试做的工作,这确实是错误的工具。一种更简洁的方法是将文档作为流获取并将其保存到字符串中。

于 2012-12-18T18:11:12.293 回答