Lijnonderbrekingen behouden bij gebruik van Jsoup
1. Overzicht
In deze tutorial kijken we kort naar de verschillende manieren van het behouden van regeleinden bij het gebruik van Jsoup om HTML naar platte tekst te parseren. We bespreken hoe regeleindes behouden blijven die zijn gekoppeld aan nieuwe regel (\ n) tekens, evenals die geassocieerd met en Jsoup verwijdert het newline-teken (\ n) standaard uit de HTML-tekst en vervangt elke nieuwe regel door een spatie. Om te voorkomen dat Jsoup de newline-tekens verwijdert, kunnen we de Uitgangsinstelling van Jsoup en schakel pretty-print uit. Als pretty-print is uitgeschakeld, zullen de HTML-uitvoermethoden de uitvoer niet opnieuw formatteren en ziet de uitvoer eruit als de invoer: Verder kunnen we gebruik maken van Jsoup#schoon om alle HTML-tags uit de string te verwijderen: Laten we eens kijken wat onze outputstring is strWithNewLines lijkt op: Daarom kunnen we dat zien door te bellen Jsoup#schoon met Witte lijst#geen en het uitschakelen van de mooie afdruk-uitvoerinstelling van Jsoup, zijn we in staat om de regeleinden te behouden die zijn gekoppeld aan het newline-teken. Laten we eens kijken wat we nog meer kunnen doen! Bij het opschonen van de HTML-tekst met de Jsoup#schoon methode, verwijdert het de regeleinden die zijn gemaakt door HTML-tags zoals en Om de regeleinden die aan deze tags zijn gekoppeld, te behouden, moeten we eerst een Jsoup maken Document uit onze HTML-string: Wereld Paragraaf Vervolgens plaatsen we een teken voor een nieuwe regel vóór de en Hier hebben we de selecteer methode van Jsoup Document samen met de voordat methode om het teken voor een nieuwe regel vooraf te laten gaan. Daarna krijgen we de HTML-string van jsoupDoc met behoud van de originele nieuwe regels: Eindelijk bellen we Jsoup#schoon met Witte lijst#geen en de mooie afdrukuitvoerinstelling uitgeschakeld: En onze outputstring strWithNewLines lijkt op: Dus door vooraf te gaan en In dit korte artikel hebben we geleerd hoe we regeleinden kunnen behouden die zijn gekoppeld aan nieuwe regel (\ n) tekens en de en Zoals altijd zijn al deze codevoorbeelden beschikbaar op GitHub.2. Behoud \ n Tijdens het parseren van HTML-tekst
Document.OutputSettings outputSettings = nieuw Document.OutputSettings (); outputSettings.prettyPrint (false);
String strHTML = "Hallo \ nwereld"; String strWithNewLines = Jsoup.clean (strHTML, "", Whitelist.none (), outputSettings);
assertEquals ("Hallo \ nwereld", strWithNewLines);
3. Behoud van lijnonderbrekingen die verband houden met en Tags
String strHTML = "Hallo
Document.OutputSettings outputSettings = nieuw Document.OutputSettings (); outputSettings.prettyPrint (false); jsoupDoc.outputSettings (outputSettings); jsoupDoc.select ("br"). vóór ("\ n"); jsoupDoc.select ("p"). vóór ("\ n");
String str = jsoupDoc.html (). ReplaceAll ("\ n", "\ n");
String strWithNewLines = Jsoup.clean (str, "", Whitelist.none (), outputSettings);
assertEquals ("Hallo \ nWereld \ nParagraaf", strWithNewLines);
4. Conclusie