SORU
19 Ocak 2009, PAZARTESİ


En iyi sql server dizeden html etiketleri şerit için bir yol?

Html etiketleri içeren bir SQL Server 2005'te veri var, ve bütün bu etiketler arasında yalnızca metin bırakarak şerit istiyorum. İdeal olarak, aynı zamanda gibi şeyler < değiştirilmesi;&;, lt vb.

Kolay bir şekilde bunu yapmak için ya da birileri bazı örnek sql kodu lazım olan var mı?

Saklı yordamlara ve genişletilmiş, çok saf bir yaklaşım sql (tercihen bir geriye sql 2000 ile uyumlu) tercih ederdim eklemek için yeteneği yok. Şeritli html ile veri almak, bu güncelleme istiyorum, ideal kolay kullanım için yapmak için bir işlev yazılmış gibi olur.

Örneğin bu dönüştürme:

<B>Some useful text</B> 
<A onclick="return openInfo(this)" href="http://there.com/3ce984e88d0531bac5349" target=globalhelp>
   <IMG title="Source Description" height=15 alt="Source Description" src="/ri/new_info.gif" width=15 align=top border=0>
</A>> <b>more text</b></TD></TR>

bunun için:

Some useful text > more text

CEVAP
19 Ocak 2009, PAZARTESİ


Burada açıklanan yapacak bir UDF var:

User Defined Function to Strip HTML

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
GO

Edit: bu SQL Server için 4000, SQL Server 2000 de işe yarayacak gibi Eğer bir şey için anahtar kelime MAX değiştirirseniz. 2005, ama not

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • JayzTwoCents

    JayzTwoCents

    26 AĞUSTOS 2012
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009