0

私の目標は、「html - 文字列」を分析することです。最後に、文字列の 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: エラー: 値の子は org.jsoup.nodes.Node node.childNodes() foreach processNode のメンバーではありません ^ 1 つのエラーが見つかりました >

テキスト文字列のデータノードとテキストノードを取得できるようにするために、私を始めてもらえますか? ...再帰的に?

助けてくれてありがとう?

挨拶する

アンスガル

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 に答える