Решение 1
Вы можете получить текст элемента с помощью CSS имен классов. для этого вы должны использовать doc.select("span.location").text();
. В этом случае у вас есть элемент, у которого есть один дочерний элемент, а при вызове метода text
текст основного узла (Сиэтл, WA 98104) и его дочерний объект (центр города) извлекается.
Код выглядит следующим образом:
public static void main(String[] args) {
String html = "<span class=\"location accessible-contrast-color-location\">" +
"Seattle, WA 98104" +
"<span style=\"font-size: smaller\">(Downtown area)</span>" +
"</span>";
Document doc = Jsoup.parse(html);
String result = doc.select("span.location").text();
System.out.println(result);
}
Решение 2
Вы также можете использовать tag
имя, чтобы получить текст этого и его потомка.
Я закодировал ваш сценарий с помощью span tag
.
public static void main(String[] args) {
String html= "<span class=\"location accessible-contrast-color-location\">" +
"Seattle, WA 98104" +
"<span style=\"font-size: smaller\">(Downtown area)</span>" +
"</span>";
Document doc = Jsoup.parse(html);
String result= doc.select("span").first().text();
System.out.println(result);
}
Обратите внимание, так как вы хотите оба тексты, вы должны получить первый тег span
, так как он содержит дочерний тег, поэтому вы можете извлечь из него текст родительского тега ((Seattle, WA 98104)), а также текст дочернего тега (центр города).