2

何らかの理由でselect()、jSoup オブジェクトへの呼び出しから常に奇妙な結果が得られます。

これが私のコードです(単純なタイトルとメタタグの値を取得して、「リクエスト」というオブジェクトに挿入しようとしています):

<cfset jsoupObject = createObject("component","lib.javaloader.JavaLoader").init([ expandPath('/lib/jsoup-1.7.2.jar') ]) />
<cfset jsoupCreate = jsoupObject.create("org.jsoup.Jsoup") />           
<cfset parsed = jsoupCreate.parse(document.filecontent) />

<cfset variables.request = {} />
<cfset variables.request.title = parsed.select("title").first() />
<cfset variables.request.description = parsed.select("meta[name=description]").first() />

これは CFC にあるため、正常に動作する Java ローダーを使用しています。document.filecontent正常に動作する HTML コードのブロックです。

リクエスト オブジェクトを出力すると、次の結果が得られます。

ここに画像の説明を入力

ここで何がうまくいかないのでしょうか?

request オブジェクトの他のキーは無視できます。ここで注意するのはdescriptiontitleだけです。どちらも奇妙な結果になります!

CFHTTPこれより前に、いくつかのコードでHTML をロードしています (すべて正常に動作します)。

よろしくお願いします。

どうもありがとう、マイケル。

アップデート:

「解析済み」をダンプすると、次のようになります。

ここに画像の説明を入力

私が得るダンピングparsed.select("title")

ここに画像の説明を入力

4

1 に答える 1

4

タグのコンテンツではなく、実際の要素を保存しています。これは、意図していたと思います。Java オブジェクトとしてダンプされることを期待していても、それを止める癖があるかもしれません。ただし、要素をダンプする代わりに、実際のテキストを保存することをお勧めします。たとえば、次のようになります。

<cfset variables.request.title = parsed.select("title").first().text() />
于 2013-05-08T10:35:56.963 に答える