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さまざまな場所を引っ張っているさまざまなハンドルバーファイルのトンで構成されている私のテンプレートです。返されるハンドルバーファイルを1つ作成しています。

4

1 に答える 1

2

問題は、JSoupが無効なHTMLにアクセスする前に解析しようとしていることです。次のHTML(この質問で見られる)をフェッチすると、この動作の例が少しわかりやすくなります。

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

戻ります:

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

あなたの場合、Handelbarsコードは、有効なhtmlでは常に値を持つ属性と見なされます(think checked="checked")。私が知る限り、この動作を無効にする方法はありません。それはあなたがやろうとしている仕事にとって本当に間違ったツールです。よりクリーンなアプローチは、ドキュメントをストリームとしてフェッチし、それを文字列に保存することです。

于 2012-12-18T18:11:12.293 に答える