単一の Jsoup select() ステートメントを使用して、できればループせずに、 の後に来る最初 のものを常に見つけようとしています。<ul>
<h2>
たとえば、次の HTML スニペットに示すように<ul>
、兄弟にすることができます。<h2>
<!-- lots of things can come before -->
<h2 class="C" id="S3">
<button class="B">Click Me</button>
<span id="targetSpan">Target Span</span>
</h2>
<ul>
<li> List item 1</li>
<li> List item 2</li>
</ul>
<!-- lots of things can come after -->
または、 の兄弟の子孫 (必ずしも直接の子であるとは限りません!) である可能性があり<h2>
ます。兄弟は、 の後の最初の兄弟要素である場合とそうでない場合がありますが、<h2>
常に<ul>
その後の最初の要素<ul>
です<h2>
。例えば:
<!-- lots of things can come before -->
<h2 class="C" id="S3">
<button class="B">Click Me</button>
<span id="targetSpan">Target Span</span>
</h2>
<div>
<ul>
<li> List item 1</li>
<li> List item 2</li>
</ul>
</div>
<!-- lots of things can come after -->
簡単に見つけることができます<h2>
:
Element h2 = select("h2 > span#targetSpan").first().parent();
しかし、h2 を取得したら、<ul>
その後の最初のものをどのように見つけるのでしょうか? (兄弟または子孫である可能性があります。私はその HTML コードを制御していません)