Zachovanie zlomov riadkov pri používaní služby Jsoup

1. Prehľad

V tomto výučbe sa v krátkosti pozrieme na rôzne spôsoby zachovanie zlomov riadkov pri použití Jsoup na analýzu HTML na obyčajný text. Rozoberieme, ako zachovať zlomy riadkov spojené s novým riadkom (\ n) znaky, ako aj znaky spojené s

a

2. Zachovanie \ n Pri analýze textu HTML

Jsoup odstráni znak nového riadku (\ n) predvolene z textu HTML a každý nový riadok nahradí medzerníkom.

Aby sme však zabránili spoločnosti Jsoup v odstraňovaní znakov nového riadku, môžeme zmeniť Nastavenie výstupu služby Jsoup a vypnite peknú tlač. Ak je pekná tlač zakázaná, výstupné metódy HTML výstup nepreformátujú a výstup bude vyzerať ako vstup:

Document.OutputSettings outputSettings = nový Document.OutputSettings (); outputSettings.prettyPrint (false);

Ďalej môžeme použiť Jsoup#čistý ak chcete z reťazca odstrániť všetky značky HTML:

Reťazec strHTML = "Ahoj \ nsvet"; Reťazec strWithNewLines = Jsoup.clean (strHTML, "", Whitelist.none (), outputSettings);

Pozrime sa, aký je náš výstupný reťazec strWithNewLines vyzerá ako:

assertEquals ("Hello \ nworld", strWithNewLines);

Preto to môžeme vidieť tak, že zavoláme Jsoup#čistý s Biela listina#žiadny a deaktiváciou nastavenia pekného tlačového výstupu Jsoup sme schopní zachovať zlomy riadkov spojené so znakom nového riadku.

Pozrime sa, čo ešte môžeme urobiť!

3. Zachovanie zlomov riadkov spojených s

a

Značky

Pri čistení textu HTML pomocou Jsoup#čistý metóda odstráni zlomy riadkov vytvorené HTML značkami ako

a

Aby sme zachovali zlomy riadkov spojené s týmito značkami, je potrebné najskôr vytvoriť Jsoup Dokument z nášho reťazca HTML:

String strHTML = "Dobrý deň

Svet

Odstavec

"; Dokument jsoupDoc = Jsoup.parse (strHTML);

Ďalej pred znak "

a

Document.OutputSettings outputSettings = nový Document.OutputSettings (); outputSettings.prettyPrint (false); jsoupDoc.outputSettings (outputSettings); jsoupDoc.select ("br"). before ("\ n"); jsoupDoc.select ("p"). before ("\ n");

Tu sme použili vyberte metóda Jsoup Dokument spolu s predtým metóda na doplnenie znaku nového riadku.

Potom dostaneme reťazec HTML z jsoupDoc zachovanie pôvodných nových riadkov:

String str = jsoupDoc.html (). ReplaceAll ("\ n", "\ n");

Nakoniec zavoláme Jsoup#čistý s Biela listina#žiadny a nastavenie pekného tlačového výstupu zakázané:

Reťazec strWithNewLines = Jsoup.clean (str, "", Whitelist.none (), outputSettings);

A náš výstupný reťazec strWithNewLines vyzerá ako:

assertEquals ("Hello \ nWorld \ nParagraph", strWithNewLines);

Teda prípravou

a

4. Záver

V tomto krátkom článku sme sa naučili, ako zachovať zlomy riadkov spojené s novým riadkom (\ n) znaky a

a

Všetky tieto ukážky kódu sú ako vždy k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found