HTML-filtering: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 12: Regel 12:
 
== SQL ==
 
== SQL ==
  
In SQL kun je een heel eind komen. Denk bv. aan:
+
In SQL ''lijk'' je een heel eind te kunnen komen. Denk bv. aan:
  
 
* regex → Nee: Dat werkt niet voor find-&-replace
 
* regex → Nee: Dat werkt niet voor find-&-replace

Versie van 4 jan 2019 16:39

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.

  • 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?

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