亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從sql server中的字符串中刪除html標簽的最佳方法?

從sql server中的字符串中刪除html標簽的最佳方法?

MMMHUHU 2019-07-31 18:34:56
從sql server中的字符串中刪除html標簽的最佳方法?我在SQL Server 2005中有包含html標簽的數據,我想將所有內容刪除,只留下標簽之間的文本。理想的情況下也更換喜歡的東西&lt;帶<等有沒有一種簡單的方法可以做到這一點,或者有人已經有一些示例t-sql代碼?我沒有能力添加擴展存儲過程等,所以更喜歡純t-sql方法(最好是一個向后兼容sql 2000)。我只想用剝離的html檢索數據,而不是更新它,所以理想情況下它會被寫成用戶定義的函數,以便于重用。所以例如轉換這個:<B>Some useful text</B>&nbsp;<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>&gt;&nbsp;<b>more text</b></TD></TR>對此:Some useful text > more text
查看完整描述

3 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

有一個UDF將執行此處描述的操作:

剝離HTML的用戶定義函數

CREATE FUNCTION [dbo].[udf_StripHTML] (@HTMLText VARCHAR(MAX))RETURNS VARCHAR(MAX) ASBEGIN
    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))ENDGO

編輯:請注意這是針對SQL Server 2005的,但是如果將關鍵字MAX更改為類似4000,它也可以在SQL Server 2000中使用。


查看完整回答
反對 回復 2019-07-31
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

如果您的HTML格式正確,我認為這是一個更好的解決方案:

create function dbo.StripHTML( @text varchar(max) ) returns varchar(max) asbegin
    declare @textXML xml
    declare @result varchar(max)
    set @textXML = REPLACE( @text, '&', '' );
    with doc(contents) as
    (
        select chunks.chunk.query('.') from @textXML.nodes('/') as chunks(chunk)
    )
    select @result = contents.value('.', 'varchar(max)') from doc    return @resultendgoselect dbo.StripHTML('This <i>is</i> an <b>html</b> test')


查看完整回答
反對 回復 2019-07-31
  • 3 回答
  • 0 關注
  • 1144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號