Bevare linjeskift når du bruker Jsoup

1. Oversikt

I denne opplæringen vil vi se kort på de forskjellige måtene bevare linjeskift når du bruker Jsoup til å analysere HTML til ren tekst. Vi vil dekke hvordan du kan bevare linjeskift tilknyttet newline (\ n) tegn, så vel som de som er knyttet til

og

2. Bevaring \ n Mens du analyserer HTML-tekst

Jsoup fjerner den nye linjekarakteren (\ n) som standard fra HTML-teksten og erstatter hver ny linje med et mellomrom.

For å forhindre at Jsoup fjerner de nye linjetegnene, kan vi endre OutputSetting av Jsoup og deaktiver pen utskrift. Hvis pen utskrift er deaktivert, vil ikke HTML-utdata-metodene formatere utdataene på nytt, og utdataene vil se ut som inngangen:

Document.OutputSettings outputSettings = ny Document.OutputSettings (); outputSettings.prettyPrint (false);

Videre kan vi bruke Jsoup#ren for å fjerne alle HTML-kodene fra strengen:

String strHTML = "Hello \ nworld"; String strWithNewLines = Jsoup.clean (strHTML, "", Whitelist.none (), outputSettings);

La oss se hva utgangstrengen vår er strWithNewLines ser ut som:

assertEquals ("Hello \ nworld", strWithNewLines);

Derfor kan vi se det ved å ringe Jsoup#ren med Hviteliste#ingen og deaktivere den fine utskriftsinnstillingen for Jsoup, kan vi bevare linjeskiftene knyttet til den nye linjekarakteren.

La oss se hva mer vi kan gjøre!

3. Bevare linjeskift assosiert med

og

Merker

Mens du rengjør HTML-teksten ved hjelp av Jsoup#ren metoden, fjerner den linjeskiftene opprettet av HTML-koder som

og

For å bevare linjeskiftene knyttet til disse kodene, må vi først opprette en Jsoup Dokument fra vår HTML-streng:

String strHTML = "Hei

Verden

Avsnitt

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

Deretter legger vi en ny linje karakter før

og

Document.OutputSettings outputSettings = ny Document.OutputSettings (); outputSettings.prettyPrint (false); jsoupDoc.outputSettings (outputSettings); jsoupDoc.select ("br"). før ("\ n"); jsoupDoc.select ("p"). før ("\ n");

Her brukte vi å velge metoden til Jsoup Dokument sammen med før metode for å forberede den nye linjekarakteren.

Etter det får vi HTML-strengen fra jsoupDoc beholde de originale nye linjene:

Streng str = jsoupDoc.html (). Erstatt alle ("\ n", "\ n");

Til slutt ringer vi Jsoup#ren med Hviteliste#ingen og utskriftsinnstillingen for pen utskrift er deaktivert:

String strWithNewLines = Jsoup.clean (str, "", Whitelist.none (), outputSettings);

Og utgangsstrengen vår strWithNewLines ser ut som:

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

Dermed ved å prepending

og

4. Konklusjon

I denne korte artikkelen lærte vi hvordan vi kan bevare linjeskift knyttet til newline (\ n) tegn og

og

Som alltid er alle disse kodeeksemplene tilgjengelige på GitHub.


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