PHP — Возвращает все абзацы до первого

#php #dom #xpath

#php #dom #xpath

Вопрос:

Статьи Википедии имеют такую структуру:

 <div id="bodyContent"> 
  <div id="siteSub">...</div> 
  <div id="contentSub"></div> 
  <div id="jump-to-nav">...</div> 
  <table class="infobox vevent">...</table> 
  <p>Article summary</p>
  <p>Article summary continued</p>
  <p>Article summary continued</p>
  <table id="toc" class="toc">...</table> 

  <h2>...</h2> 
  <p>...</p>
  <p>...</p>
</div>
  

Меня интересует итоговая часть. С Xpath я хочу сказать:

Возвращайте <p> узлы внутри #bodyContent с самого начала И останавливайте, как только вы столкнетесь с первым <h2>

Как мне это сказать?

Ответ №1:

Я думаю, вы хотите что-то вроде //div[@id="bodyContent"]/h2[1]/preceding-sibling::p .

Здесь говорится «из #bodyContent дочерних элементов найдите первый h2 элемент и среди его предыдущих братьев и сестер найдите все p элементы».