====== pears.MakeHTMLReadable ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create function "pears"."MakeHTMLReadable"(
/* Application Maintained Function / Procedure - DO NOT EDIT*/
@HTMLText long varchar,@ReplaceBR smallint )
returns long varchar
as
begin
declare @Start integer
declare @End integer
declare @Length integer
-- ReplaceBR with CRLF 0 - No 1 - Yes
-- Replace the HTML entity & with the '&' character (this needs to be done first, as
-- '&' might be double encoded as '&')
set @Start = "CHARINDEX"('&',@HTMLText)
set @End = @Start+4
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 = @Start+4
set @Length = (@End-@Start)+1
end
-- Replace the HTML entity < with the '<' character
set @Start = "CHARINDEX"('<',@HTMLText)
set @End = @Start+3
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 = @Start+3
set @Length = (@End-@Start)+1
end
-- Replace the HTML entity > with the '>' character
set @Start = "CHARINDEX"('>',@HTMLText)
set @End = @Start+3
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 = @Start+3
set @Length = (@End-@Start)+1
end
-- Replace the HTML entity & with the '&' character
set @Start = "CHARINDEX"('&',@HTMLText)
set @End = @Start+4
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 = @Start+4
set @Length = (@End-@Start)+1
end
-- Replace the HTML entity with the ' ' character
set @Start = "CHARINDEX"(' ',@HTMLText)
set @End = @Start+5
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 = @Start+5
set @Length = (@End-@Start)+1
end
if(@ReplaceBR = 1) begin
-- Replace any
tags with a newline
set @Start = "CHARINDEX"('
',@HTMLText)
set @End = @Start+3
set @Length = (@End-@Start)+1
while(@Start > 0 and @End > 0 and @Length > 0) begin
set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,"CHAR"(13)+"CHAR"(10))
set @Start = "CHARINDEX"('
',@HTMLText)
set @End = @Start+3
set @Length = (@End-@Start)+1
end
-- Replace any
tags with a newline
set @Start = "CHARINDEX"('
',@HTMLText)
set @End = @Start+4
set @Length = (@End-@Start)+1
while(@Start > 0 and @End > 0 and @Length > 0) begin
set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'CHAR(13) + CHAR(10)')
set @Start = "CHARINDEX"('
',@HTMLText)
set @End = @Start+4
set @Length = (@End-@Start)+1
end
-- Replace any
tags with a newline
set @Start = "CHARINDEX"('
',@HTMLText)
set @End = @Start+5
set @Length = (@End-@Start)+1
while(@Start > 0 and @End > 0 and @Length > 0) begin
set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'CHAR(13) + CHAR(10)')
set @Start = "CHARINDEX"('
',@HTMLText)
set @End = @Start+5
set @Length = (@End-@Start)+1
end
end
-- Remove anything between tags
set @Start = "CHARINDEX"('<',@HTMLText)
set @End = "LOCATE"(@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 = "LOCATE"(@HTMLText,'>',"CHARINDEX"('<',@HTMLText))
set @Length = (@End-@Start)+1
end
return "LTRIM"("RTRIM"(@HTMLText))
end