Jsoup текст "вычитание" в div, содержащий - PullRequest
3 голосов
/ 27 мая 2011

Используя jsoup, я знаю, как извлечь текст целого div:

<div class="c">
<a href="/relurl.php?refid=7">First Anchor Text</a>
 Something in Between 
 <a href="/john.doe?refid=7">Second Anchor Text</a>
</div>

Так, что div.text() дает:

Первый текст привязки Что-то между вторымЯкорный текст

И я знаю, как извлечь текст каждого якоря отдельно, так что первый a.text() дает:

Первый якорный текст

Но есть ли в Jsoup элегантный способ извлечь only Something in Between?

(Конечно, я могу извлечь 2 a.text() и "вычесть" их из div.text() но я не считаю это элегантным)

1 Ответ

5 голосов
/ 27 мая 2011

Использование Element#ownText(). Вот выдержка из связанного javadoc:

ownText

public String ownText()

Получает текст, принадлежащий только этому элементу; не получает объединенный текст всех детей.

Например, для данного HTML <p>Hello <b>there</b> now!</p>, p.ownText() возвращает "Hello now!", тогда как p.text() возвращает "Hello there now!". Обратите внимание, что текст в элементе b не возвращается, так как он не является прямым потомком элемента p.

Итак, это должно сделать:

String ownText = div.ownText();
// ...
...