HTML-filtering: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
k (Jeroen Strompf heeft pagina Filter HTML-tags hernoemd naar HTML-filtering)
(geen verschil)

Versie van 8 jan 2019 12:34

Soms krijg ik data aangeleverd in HTML-formaat, terwijl de beoogde toegang alleen platte tekst toestaat, of slechts een beperkte subset van HTML. Een voorbeeld is een export vanuit een webwinkel, bedoeld voor upload naar Amazon.

Het probleem

  • Hoe kan ik alle HTML-tags en speciale tekens uit een bestand (of database-tabel) filteren?
  • Kan ik daarbij specifieke HTML-opmaak vervangen door iets 'platters', zodat bv. een tabel in stand blijft?
  • Kunnen HTML-entiteiten zoals & amp ; omgezet worden?

Inventaris

  • Python HTMLParser-library [1]
  • PHP HTML Purifier-library [2]
  • Het lijkt aantrekkelijk om dit in SQL te doen [3], maar HTML is daar vermoedelijk te veelzijdig voor [4]

SQL

In SQL lijk je een heel eind te kunnen komen. Denk bv. aan:

  • regex → Nee: Dat werkt niet voor find-&-replace
  • substring_index, left(), right()
  • instr

Hyperlinks?

Het wordt ingewikkelder als je meerdere hyperlinks in een veld hebt, maar niet onmogelijk: Waarschijnlijk kun je die dynamisch uitfilteren met bv. substring_index.

...Of toch maar niet

In de praktijk valt dit tegen: Ik heb in het voorjaar van 2018 hier ca. een middagje op gezeten, en er bleken steeds opnieuw situaties te zijn waar ik geen rekening mee had gehouden. Bv. wat te doen met complete tabellen?

Bronnen