対象:span
に指定された検索語が含まれている場合、兄弟a
要素のspan
およびhref
属性のテキストを取得します。
href
属性セットを持つa
を検索する方法の1つは、preceding siblingspan
という要素です。次に、コンテンツを比較する親要素とその中のspan
要素を選択します。 DOMツリーの解析には、jsoupが適しています。
サンプルコード
String source = "<div class=\"div\"><span>my y favourite text </span><a href=\"http://www.mylink.com\">my link </a></div>" +
"<div class=\"div\"><span>my y favourite 2 text </span><a href=\"/some-link.html\">my link 1</a></div>" +
"<div class=\"div\"><span>my y text </span><a href=\"http://www.mylink.com\">my link 2</a></div>";
String searchWord = "favourite";
Document doc = Jsoup.parse(source, "UTF-8");
doc.setBaseUri("http://some-source.com"); // only for absolute links in local example
Element parent;
String spanContent="";
String link = "";
for (Element el : doc.select("span ~ a[href]")) {
parent = el.parent();
if(parent.select("span").text().contains(searchWord)){
spanContent = parent.select("span").first().text();
link = parent.select("a[href]").first().absUrl("href");
System.out.println(spanContent + " -> " + link); // do something useful with the matches
}
}
出力
my y favourite text -> http://www.mylink.com
my y favourite 2 text -> http://some-source.com/some-link.html
http://stackoverflow.com/q/8451801/7012517このリンクを参照してください...! – Shobhit
ありがとうございました...私はそれを読んだが、彼が何をしているのか理解していませんでした:( – 24terminator96
他の選択肢がありますか? – 24terminator96