====== pears.GetTextFromHTML ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."GetTextFromHTML" IS
{create function GetTextFromHTML
/* Application Maintained Function / Procedure - DO NOT EDIT*/
( in htmlText long varchar )
returns long varchar
begin
declare plainText long varchar;
declare tagStart integer;
declare tagEnd integer;
declare tagLength integer;
declare tagType char(20);
declare endOfTagName integer;
set plainText = htmlText;
if locate( plainText, '', 1 ) = 0 then
return plainText;
end if;
set plainText = right(plainText, length(plainText) - charindex('', upper(plainText)) - 6);
set plainText = replace(plainText, char(13), '');
set plainText = replace(plainText, char(10), '');
set plainText = replace(plainText, '', char(96));
set plainText = replace(plainText, '@', char(96));
while locate( plainText, '<', 1 ) > 0 loop
set tagStart = charindex('<', plainText);
set tagEnd = charindex('>', plainText);
// make tag type always be in upper case, and compensate for the < things
set tagType = substring(upper(plainText), tagStart+1, tagEnd-tagStart-1);
set tagLength = tagEnd - tagStart;
// check to see if there are spaces in the name (there are attributes).
// if there are get rid of them
set endOfTagName = charindex(' ', tagType);
if endOfTagName > 0 then
set tagType = substring(tagType, 1, endOfTagName);
end if;
case tagType
when '/DIV' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/P' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/H1' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/H2' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/H3' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/H4' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/H5' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/H6' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/UL' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/OL' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when 'BR' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/TABLE' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when 'HR' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/ARTICLE' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/ASIDE' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/BLOCKQUOTE' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/FIGCAPTION' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/FIGURE' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/FOOTER' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/FORM' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/HEADER' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/MENU' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/NAV' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/PRE' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/SECION' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
when '/SUMMARY' then set plainText = stuff(plainText, tagStart, tagLength+1, char(13)+char(10));
else set plainText = stuff(plainText, tagStart, tagLength+1, NULL);
end;
end loop;
set plainText = replace(plainText, ' ', '' );
set plainText = replace(plainText, '&', '&');
set plainText = replace(plainText, '>', '>') ;
set plainText = replace(plainText, '<', '<');
set plainText = replace(plainText, '"', char(34));
set plainText = replace(plainText, ''', char(39));
set plainText = replace(plainText, '¢', char(163));
set plainText = replace(plainText, '£', char(163));
set plainText = replace(plainText, '€', char(128));
set plainText = replace(plainText, '¥', char(165));
set plainText = replace(plainText, '©', char(169));
set plainText = replace(plainText, '®', char(174));
if (isnull(plainText,'') = '') and (isnull(htmltext,'')<>'') then
set plainText = 'Could not parse following HTML:' + char(13)+char(10) + htmlText;
endif;
return plainText;
end
}