4

HTML形式のテキストを含む文字列があります(Webページ全体ではありません)。

Jsoupを使用して特定のタグの後にすべてのHTMLコンテンツを取得するにはどうすればよいですか?

より具体的にする。次の文字列があると仮定します。

String input = "<div>a</div><p>b</p><strong>c</strong>";

取得したい:

String output = "<p>b</p><strong>c</strong>";

したがって、私はやっています

Document doc = Jsoup.parseBodyFragment(input); // parse
Element p = doc.select("p"); // select p

そして、私はpの後に何を出力するかを理解するのに苦労しています。簡単にするために、pが一意であると仮定します。

別の入力/出力(求められたとおり):

String input = "<br /><strong>a</strong><strong>b</strong><p>c</p><div>d</div><br />";
String output = "<p>c</p><div>d</div><br />";

前もって感謝します。

4

1 に答える 1

4

ここにいくつかのコードがあります-それがあなたに少し役立つことを願っています:

String input = "<div>a</div><p>b</p><strong>c</strong>";


Document doc = Jsoup.parse(input);
Elements elements = doc.select("p ~ *");

Elements group = new Elements();
group.add(elements.first().previousElementSibling());


for( Element element : elements )
{
    group.add(element);
}

// You can work with 'group' too
String output = group.toString();

出力:

例1:

<p>b</p>
<strong>c</strong>

例2:

<p>c</p>
<div>
 d
</div>
<br />
于 2012-09-13T12:26:04.453 に答える