MS SQL Server: Remove / Strip HTML Tags from Field – HTML Tags entfernen

Problem

Aus einer Selektion sollen alle HTML Tags entfernt werden.

Ansatz – Approach

– Erstellen einer Function
– SQL Abfrage absetzen (z.B. i.e. dbo.udf_StripHTML(‚HTML‚))

– Create a custom function
– Make your SQL Statement (i.e. dbo.udf_StripHTML(‚HTML‚))

Lösung – Solution

Als erstes wird die Funktion udf_StripHTML(STRING) erstellt:

CREATE FUNCTION [dbo].[udf_StripHTML] (@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX) AS
BEGIN
    DECLARE @Start INT
    DECLARE @End INT
    DECLARE @Length INT
    SET @Start = CHARINDEX('<',@HTMLText)
    SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
    SET @Length = (@End - @Start) + 1
    WHILE @Start > 0 AND @End > 0 AND @Length > 0
    BEGIN
        SET @HTMLText = STUFF(@HTMLText,@Start,@Length,'')
        SET @Start = CHARINDEX('<',@HTMLText)
        SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
        SET @Length = (@End - @Start) + 1
    END
    RETURN LTRIM(RTRIM(@HTMLText))
END
&#91;/javascript&#93;
Der obige Text wird hierzu einfach in das SQL Server Management Studio kopiert, markiert und ausgeführt. 

Zum Schluss wird die Abfrage abgesetzt:
&#91;javascript&#93;
SELECT dbo.udf_StripHTML(htmlTextFeld) FROM Tabelle

-- ODER

SELECT dbo.udf_StripHTML('<a href="irrsinn.php">Grober Unfug</a> ist keine <b>Methode</b> sondern <div style="font-family:Times;">Kriegsführung</div>')

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.