/ / JSoup analyzuje zle štruktúrovaný HTML - java, html, jsoup

JSoup parsovanie zle štruktúrovaných HTML - java, html, jep

Mám štruktúru HTML, ktorá vyzerá takto:

<h1>Title</h1>
<h2>Subtitle</h2>
<p>Some text</p>
<p>Some other text</p>

<h1>Some other title</h1>
<h2>Another sub-title</h2>
<p>Some other text</p>

V podstate ide o články, ale každý článok jenie vnútri jediného div. To, čo ich oddeľuje, je značka. Mám záujem analyzovať iba odseky, v ktorých by mal byť každý článok samostatným subjektom.

O čom som premýšľal: dostať nádobu, v ktorej sú uložené články, nájsť prvú značku h1. Začnite analyzovať všetky prvky, až kým nedosiahneme ďalšiu značku h1. Keď sa dosiahne nová značka h1, spracujte predtým analyzované údaje a začnite znova.

Zaujímalo by ma však, či je možné jednoduchšie riešenie?

odpovede:

1 pre odpoveď č. 1

Vaše riešenie môžem vylepšiť len nepatrne:

  1. Vybrať všetko h1 prvky v kontajneri (namiesto jednoduchého prehľadávania prvkov kontajnera jeden po druhom)
  2. Pre každú zhodu h1
    1. Zhromaždite svojich nasledujúcich súrodencov až do prvej h1
    2. Spracujte ich

select umožňuje nájsť h1s (napr. .select("selector-for-container > h1"), potom nextElementSibling umožňuje ľahko prechádzať z každého dopredu h1 (alebo nextSibling, ale potom musíte tieto prvky vyradiť sami - samozrejme, ak existuje obsah článku ISN "t v p, pre textové uzly by ste to chceli).