0

我的目标是分析“html - String”。最后,我想提取字符串的 Textnodes 和 datanodes 并将它们存储在不同的列表中。

在我的第一个方法中,我尝试递归地遍历“html - String”。

import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import java.util.Iterator
import org.jsoup.nodes
import org.jsoup.nodes.Node

object TextAnalyzer {

    def processNode(node: Node) {
        if (node.isInstanceOf[TextNode]) println(node.toString())
        node.childNodes() foreach processNode
    }

    def main(args: Array[String]) {
        val myHtml = "<html> <head> <title>Welcome</title>    </head>    <body>        <div>            <p>Foo</p>        </div>    </body></html>";

        val doc = Jsoup.parse(myHtml);
        processNode(doc);

    }
}

它以以下错误消息结束:

scalac MyModule.scala

MyModule.scala:23: error: value childs is not a member of org.jsoup.nodes.Node node.childNodes() foreach processNode ^ 发现一个错误 >

你能让我开始以便能够获取文本字符串的数据和文本节点吗?...递归?

提前感谢您的帮助?

打招呼

安斯加尔

4

1 回答 1

0

我不太明白你的问题 - 但以下编译。这是你的目标吗?

import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import java.util.Iterator
import org.jsoup.nodes._
import scala.collection.JavaConversions._

    object TextAnalyzer extends App {

        def processNode(node: Node) {
            if (node.isInstanceOf[TextNode]) println(node.toString())
            node.childNodes() foreach processNode
        }

        val myHtml = "<html> <head> <title>Welcome</title>    </head>    <body>        <div>            <p>Foo</p>        </div>    </body></html>";

        val doc = Jsoup.parse(myHtml);
        processNode(doc);

    }
于 2013-06-09T17:47:58.140 回答