【问题标题】:jsoup, ColdFusion 9, Node. "undefined variable" errorjsoup,ColdFusion 9,节点。 “未定义变量”错误
【发布时间】:2013-08-28 07:01:28
【问题描述】:

好的...我正在尝试隔离,然后处理 br 标记之后的文本。我得到了输出,但是抛出了一个错误。下面没有显示显示代码,但这里是 cfscript 块:

<cfscript>
jSoupClass = createObject( "java", "org.jsoup.Jsoup" );
nodeClass = createObject("java", "org.jsoup.nodes.Node");
textNodeClass = createObject("java", "org.jsoup.nodes.TextNode");

html = "<html>...</html>";

doc = jSoupClass.parse(html);


brs = doc.select( "table > tbody > tr > td > div > b:last-of-type ~ br");

for( br in brs ){
result = br.nextSibling();
writeOutput(results(result.toString())&"<br />");
}
</cfscript>

CF 错误消息:变量 RESULTS 未定义。

任何帮助将不胜感激。

writeOutput(results(result.toString())&"<br />");

上面的行是错误消息中提到的内容

【问题讨论】:

  • 您引用的错误与您发布的代码无关。屏幕上的错误消息应标识发生错误的确切代码行,包括实际的代码段。发布。
  • 提供的代码将返回的唯一错误(假设 jsoup jar 在类路径上)是关于 results 不存在。当您遵循 Adam 的建议时,请记住确保您发布的代码尽可能独立。
  • 错误信息是正确的:results 在您提供的代码中定义。该行将作为writeOutput( result.outerhtml() &amp; '&lt;br/&gt;') 工作,但这不会做任何results 函数应该做的事情。
  • 感谢 cmets Peter。我将线路更改为您提供的线路。我仍然得到我想要的输出和我不想要的错误:变量结果未定义。 [引用代码:writeOutput(result.outerhtml() & '
    ')].
  • 我认为问题是由于这一行:result = br.nextSibling();您永远不会检查是否找到下一个兄弟姐妹。如果这找不到兄弟,这将导致您描述的错误。上面的代码中也没有定义 results() ,所以这也是一个明显的问题。

标签: java coldfusion jsoup


【解决方案1】:

我知道这已经晚了,但如果我是对的,请告诉我。

我正在深入探索 jSoup 和 ColdFusion:代替 toString() 方法,尝试 jSoup 的 text()html() 等方法之一。

【讨论】:

    【解决方案2】:

    你尝试过这样的事情吗?

    for( br in brs ){
    result = br.nextSibling();
    if(!result.isBlank())
        writeOutput(result.toString() & "<br />");
    }
    

    您要确保正在检查节点是否为空白或是否有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-25
      相关资源
      最近更新 更多