conversion HTML au texte SQL peut être fait efficacement avec une fonction définie par l'utilisateur . Une fonction définie par l'utilisateur accepte les paramètres , exécute une action, telle que l'analyse HTML et renvoie le résultat sous forme de valeur . La fonction peut être exécutée à partir de n'importe quelle instruction SQL ou langage de programmation externe. Choses que vous devez Connaissance intermédiaire de T -SQL permissions appropriées afin de créer une base de données objet fonction Afficher plus Instructions 1 Connectez-vous à votre base de données, et . créer un nouveau fichier SQL 2 Entrez le SQL suivante : CREATE FUNCTION [ dbo] [ CleanHTML ] (produits @ . DirtyText varchar ( MAX) ) RETURNS varchar ( MAX) AS BEGIN DECLARE @ BeginPos int DECLARE @ EndPos int DECLARE @ Len int - Remplacer l'entité HTML et avec le caractère '&' ( ce qui doit être fait en premier, comme - '&' pourrait être le double codé comme «&» ) SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) SET @ = @ EndPos BeginPos + 4 < br > SET @ Len = ( @ EndPos - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , '&' ) SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) SET @ = @ EndPos BeginPos + 4 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 End of - Remplacer l'entité HTML < par le caractère ' < ' < br > SET @ BeginPos = CHARINDEX ( '<', @ DirtyText ) SET @ = @ eNDPOS BeginPos + 3 SET @ len = (@ eNDPOS - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , '< ; ') SET @ BeginPos = CHARINDEX ( ' <', @ DirtyText ) SET @ = @ eNDPOS BeginPos + 3 SET @ len = (@ endPos - @ BeginPos ) + 1 End of - Remplacer l'entité HTML> avec le '>' caractère SET @ BeginPos = CHARINDEX ( '>' , @ DirtyText ) SET @ = @ EndPos BeginPos + 3 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 ET @ EndPos > 0 et @ Len > 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , '>' ) SET @ BeginPos = CHARINDEX ( '>' @ DirtyText ) SET @ = @ eNDPOS BeginPos + 3 SET @ len = (@ eNDPOS - @ BeginPos ) + 1 END - Remplacer l'entité HTML et avec le caractère '&' SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) SET @ = @ EndPos BeginPos + 4 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > 0 ) commencent < p> SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , '&' ) SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) SET @ EndPos = @ BeginPos + 4 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 End of - Remplacer l'entité HTML avec le caractère ' < br > SET @ = @ eNDPOS BeginPos + 5 SET @ len = (@ eNDPOS - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , ' ») SET @ BeginPos = CHARINDEX ('' , @ DirtyText ) SET @ = @ EndPos BeginPos + 5 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 End of - Remplacer les étiquettes avec un saut de ligne SET @ BeginPos = CHARINDEX ('', @ DirtyText ) SET @ = @ EndPos BeginPos + 3 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , CHAR (13) + CHAR (10 ) ) SET @ BeginPos = CHARINDEX ('', @ DirtyText ) SET @ = @ EndPos BeginPos + 3 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 End of - Remplacez tout balises avec un saut de ligne SET @ BeginPos = CHARINDEX (' ', @ DirtyText ) SET @ = @ EndPos BeginPos + 4 Photos SET @ Len = ( @ EndPos - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , ' CHAR ( 13) + CHAR (10 )') SET @ BeginPos = CHARINDEX (' ', @ DirtyText ) SET @ = @ EndPos BeginPos + 4 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 End of - Remplacez les balises avec un saut de ligne SET @ BeginPos = CHARINDEX ( ' ', @ DirtyText ) SET @ = @ eNDPOS BeginPos + 5 Photos SET @ Len = ( @ EndPos - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length , ' CHAR ( 13) + CHAR (10 )') SET @ BeginPos = CHARINDEX ( ' ', @ DirtyText ) SET @ = @ EndPos BeginPos + 5 SET @ Len = ( @ EndPos - @ BeginPos ) + 1 End of - Retirez tout entre les balises SET @ BeginPos = CHARINDEX ( '<', @ DirtyText ) SET @ EndPos = CHARINDEX ( '>' , @ DirtyText , CHARINDEX ( '<', @ DirtyText ) ) SET @ Len = ( @ EndPos - @ BeginPos ) + 1 TOUT (@ BeginPos > 0 et @ EndPos > 0 et @ Len > ; 0) BEGIN SET @ DirtyText = STUFF (@ DirtyText , @ BeginPos , @ Length ,'') SET @ BeginPos = CHARINDEX ( '<', @ DirtyText ) < br > SET @ EndPos = CHARINDEX ( '>' , @ DirtyText , CHARINDEX ( '<', @ DirtyText ) ) SET @ Len = ( @ EndPos - @ BeginPos ) + 1 < br > End of RETOUR LTRIM ( RTRIM (@ DirtyText ) ) FIN 3 Compiler la fonction SQL. < br > 4 exécuter la fonction , et vérifiez qu'il renvoie les résultats souhaités. Par exemple: Choisissez parmi dbo.CleanHTML (' essai ');
|