使用ColdFusion在jSoup select()中出现意外结果

时间:2013-05-08 09:39:36

标签: java coldfusion jsoup railo cfml

出于某种原因,我总是从select()调用jSoup对象得到一个奇怪的结果。

这是我的代码(我试图获取简单的标题和元标记值,并将它们插入我的对象'request'):

<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 Loader,它运行正常。 document.filecontent是一段HTML代码,工作正常。

当我输出我的请求对象时,我得到以下结果:

enter image description here

这里可能出现什么问题?

您可以忽略请求对象中的其他键,这里唯一需要注意的是 description title ,它们都给我带来了奇怪的结果!

我之前在某些代码中通过CFHTTP加载我的HTML(一切正常)。

我非常感谢你的帮助。

非常感谢, 迈克尔。

更新

倾倒'解析'我得到以下内容:

enter image description here

倾倒parsed.select("title")我得到:

enter image description here

1 个答案:

答案 0 :(得分:4)

您正在存储实际的元素而不是标记的内容,这是我假设您的意图。即使您希望它作为Java对象转储,也可能会有一些怪癖阻止它。您可能希望存储实际文本而不是转储元素,例如:

<cfset variables.request.title = parsed.select("title").first().text() />