この質問はされたと思いますが、何も見つかりませんでした。
JsoupのDocument
要素から、HTML コンテンツのすべての要素をトラバースするにはどうすればよいですか?
私はドキュメントを読んでいて、このchildNodes()
方法を使用することを考えていましたが、下の 1 つのレベルからノードを取得するだけです (私が理解していること)。この方法で再帰を使用できると思いますが、これを行うためのより適切な/ネイティブな方法があるかどうかを知りたいです。
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());
}
});
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);
これがあなたを助けることを願っています。ありがとうございました!