Hoe strip je de HTML opmaak uit een webpagina
Vaak is het nodig om de HTML-tags uit (stukken uit) een HTML pagina te halen. Bijvoorbeeld in situaties dat de content van de pagina moet worden onderzocht of geanaliseerd. Dit is heel eenvoudig te doen met reguliere expressies (Regex).
De volgende stappen zijn nodig:
- Vervang de <br>-tags door [Enter]’s.
- Decodeer de HTML-codes naar ascii, bijvoorbeeld naar een spatie
- Verwijder alle HTML-tags (beginnend met < en eindigend met >)
De reguliere expressie om HTML tags te ‘vinden’ is de volgende:
<(.|\n)*?>
Hieronder geef ik een voorbeeld in C-sharp hoe deze reguliere expressie te gebruiken voor het verwijderen van HTML content.
public string StripHTML(string in_Content)
{
string lv_HTML = in_Content;
//Vervang <br>-tags door [enter]’s
lv_HTML = Regex.Replace(lv_HTML, “<br>”, “\n”);
//Decodeer alle HTML zodat bijvoorbeeld < wordt veranderd naar <
lv_HTML = HttpUtility.HtmlDecode(lv_HTML);
//Vervang alle HTML tags door spaties
lv_HTML = Regex.Replace(lv_HTML, “<(.|\n)*?>”, ” “);
return lv_HTML;
}
Het resultaat van deze functie is een string zonder HTML opmaak

februari 10th, 2009 at 19:46
[...] 2: Verwijder de HTML Strip alle HTML-tags uit de HTML pagina zodat alleen de daadwerkelijke tekst overblijft. Vergeet hier niet de javascripts te verwijderen en [...]
februari 11th, 2009 at 01:01
Is het niet gemakkelijker om een Rich Text control te gebruiken? Hierin kan de HTML-pagina of HTML-code worden geladen. Vervolgens kan direct de tekst hier weer van opgevraagd worden zonder dat je zelf ook nog maar 1 regel code hoeft te schrijven. Op deze manier hoef je niet alle HTML-code handmatig te converteren. Vooral bij en ö etc. lijkt me dat erg handig.
Kun je me aangeven wat de voordelen van jouw oplossing? Je zult mijn suggestie ook vast wel eens geprobeerd hebben, dus wellicht overzie ik geheel nog niet in de geschetste context van je artikel?
februari 11th, 2009 at 08:06
Jord, bedankt voor je reactie.
De oplossing met de Rich Text control zal ongetwijfeld werken en voor bepaalde toepassingen misschien de voorkeur hebben. Echter de Rich Text control is een relatief zwaar object.
Zodra er vele honderduizenden paginas moeten worden geanaliseerd waarbij eerst de HTML uit de code moet worden gestript kan ik mij voorstellen dat snelheid een issue is waarmee rekening moet worden gehouden. Een eigen functie kun je altijd schrijven voor 1 specifiek doel en kan daarmee vele malen sneller worden. Verder kun je een eigen functie ‘op maat’ maken. In het bovenstaande voorbeeld vervang ik de
tags door [Enters]’s. Dit laatste zal de Rich Text control ongetwijfeld niet doen.
Zelf heb ik een zoekmachine (http://www.feeds4all.nl) die ik gebruik als speeltuin. Hierbij heb ik te maken met 10-tallen miljoenen HTML pagina’s. In mijn geval heb ik gewoonweg geen keus en moet ik veel functies op snelheid schrijven.
maart 30th, 2010 at 16:46
zeer interessant, bedankt