jsoupを使用して各タグの後にテキストを抽出します。それを直接選択する方法はありますか、またはすべての点で.substringを実行する必要がありますか?Jsoupタグの後にテキストを選択
<div>
<a href="#"> I don't want this text </a>
**I want to retrieve this text**
</div>
jsoupを使用して各タグの後にテキストを抽出します。それを直接選択する方法はありますか、またはすべての点で.substringを実行する必要がありますか?Jsoupタグの後にテキストを選択
<div>
<a href="#"> I don't want this text </a>
**I want to retrieve this text**
</div>
public static void main(String... args) throws IOException {
Document document = Jsoup.parse("<div>"
+ "<a href=\"#\"> I don't want this text </a>"
+ "**I want to retrieve this text**" + "</div>");
Element a = document.select("a").first();
Node node = a.nextSibling();
System.out.println(node.toString());
}
出力
**I want to retrieve this text**
はい、できます。
<a>
要素を取得し、それが<a>
要素のHTML<div>
のHTMLを取得し、その後.html()
解決策の方向性を提示しているにもかかわらず、上記の答えは普遍性に欠けると思います。
nextSibling()
は、html構造が変更されている間は使用できません。
私はJsoup APIを参照すると、textNodes()
という名前のメソッドが見つかりました。これは、この要素からテキストノードのリストを取得できます。
public static String getTextAfterTag(Element ele) {
String text = "";
for(TextNode node: ele.textNodes()) {
text += node.text();
}
return text;
}
希望します。
ありがとうございました。正確に私が必要としたもの。 – Mintz
優秀、ありがとう! – Dax