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 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: Videre kan vi bruke Jsoup#ren for å fjerne alle HTML-kodene fra strengen: La oss se hva utgangstrengen vår er strWithNewLines ser ut som: 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! 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: Verden Avsnitt Deretter legger vi en ny linje karakter før og 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: Til slutt ringer vi Jsoup#ren med Hviteliste#ingen og utskriftsinnstillingen for pen utskrift er deaktivert: Og utgangsstrengen vår strWithNewLines ser ut som: Dermed ved å prepending og 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.2. Bevaring \ n Mens du analyserer HTML-tekst
Document.OutputSettings outputSettings = ny Document.OutputSettings (); outputSettings.prettyPrint (false);
String strHTML = "Hello \ nworld"; String strWithNewLines = Jsoup.clean (strHTML, "", Whitelist.none (), outputSettings);
assertEquals ("Hello \ nworld", strWithNewLines);
3. Bevare linjeskift assosiert med og Merker
String strHTML = "Hei
Document.OutputSettings outputSettings = ny Document.OutputSettings (); outputSettings.prettyPrint (false); jsoupDoc.outputSettings (outputSettings); jsoupDoc.select ("br"). før ("\ n"); jsoupDoc.select ("p"). før ("\ n");
Streng str = jsoupDoc.html (). Erstatt alle ("\ n", "\ n");
String strWithNewLines = Jsoup.clean (str, "", Whitelist.none (), outputSettings);
assertEquals ("Hello \ nWorld \ nParagraph", strWithNewLines);
4. Konklusjon