11

この質問はされたと思いますが、何も見つかりませんでした。

JsoupのDocument要素から、HTML コンテンツのすべての要素をトラバースするにはどうすればよいですか?

私はドキュメントを読んでいて、このchildNodes()方法を使用することを考えていましたが、下の 1 つのレベルからノードを取得するだけです (私が理解していること)。この方法で再帰を使用できると思いますが、これを行うためのより適切な/ネイティブな方法があるかどうかを知りたいです。

4

3 に答える 3

26

Document(および任意のサブクラス)からNode、メソッドを使用できますtraverse(NodeVisitor)

例えば:

document.traverse(new NodeVisitor() {
    public void head(Node node, int depth) {
        System.out.println("Entering tag: " + node.nodeName());
    }
    public void tail(Node node, int depth) {
        System.out.println("Exiting tag: " + node.nodeName());
    }
});
于 2012-04-11T18:09:35.290 に答える
2

1) * セレクターを使用して、ドキュメントのすべての要素を選択できます。

Elements elements = document.body().select("*");

2) Element.ownText() メソッドを使用して、それぞれのテキストを個別に取得します。

for (Element element : elements) {
  System.out.println(element.ownText());
}

3) Element.html(String strHtml) を使用して、それぞれのテキストを個別に変更します。(要素内の既存の内部 HTML をクリアし、解析済みの HTML に置き換えます。)

element.html(strHtml);

これがあなたを助けることを願っています。ありがとうございました!

于 2016-06-12T15:43:19.987 に答える