出于某种原因,我总是从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代码,工作正常。
当我输出我的请求对象时,我得到以下结果:
这里可能出现什么问题?
您可以忽略请求对象中的其他键,这里唯一需要注意的是 description 和 title ,它们都给我带来了奇怪的结果!
我之前在某些代码中通过CFHTTP
加载我的HTML(一切正常)。
我非常感谢你的帮助。
非常感谢, 迈克尔。
更新
倾倒'解析'我得到以下内容:
倾倒parsed.select("title")
我得到:
答案 0 :(得分:4)
您正在存储实际的元素而不是标记的内容,这是我假设您的意图。即使您希望它作为Java对象转储,也可能会有一些怪癖阻止它。您可能希望存储实际文本而不是转储元素,例如:
<cfset variables.request.title = parsed.select("title").first().text() />