April 17th, 2006

How to Easily Parse Text With ASP

Parsing text in ASP is not the easiest task. If you only want to extract text from the right or left side of a string, it's no problem. But if you need to extract from the middle of the string - or parse HTML or XML tags or attributes - it can be quite difficult if you don't know the exact location. So I built this function to take a string, and two other strings as the left and right markers to parse between.

The function has two additional capabilities besides just parsing between two strings.
1. If you specify "1" as the strLft parameter, all text from the beginning of the string to the instance of the right string will be parsed. Basically this means "give me everything before ___ text"
2. If you use empty quotes for the left parameter (""), then everything after the right marker will be parsed. This is handy if you have repeating tags, and you want to parse them one at a time. You parse the first one, then remove it by parsing everything to the right of it, parse the next, and so on.

'=== extractor function
'=== strSrc: the text to pull from
'=== strLft: left marker to start at
'=== strRgt: right marker to end at
function parser(strSrc, strLft, strRgt)
        dim strParsed
        strLft = cStr(strLft)
       
        if strLft = "1" then '=== start from beginning
                if inStr(strSrc, strRgt) > 0 then strParsed = left( strSrc, inStr(strSrc, strRgt) - 1)   
        elseif strLft = "" then '=== start from right marker (trim out last result)
                if inStr(strSrc, strRgt) > 0 then strParsed = right( strSrc, len(strSrc) - (inStr(strSrc, strRgt) + len(strRgt) - 1))
        else
                if inStr(strSrc, strLft) > 0 then
                        strParsed = right( strSrc, len(strSrc) - (inStr(strSrc, strLft) + len(strLft) - 1))
                        if inStr(strSrc, strRgt) > 0 then strParsed = left( strParsed, inStr(strParsed, strRgt) - 1)
                end if
        end if
       
        strParsed = trim(strParsed)
       
        do until left(strParsed, 1) <> chr(10) and right(strParsed, 1) <> chr(10)
                if left(strParsed, 1) = chr(10) then strParsed = right(strParsed, len(strParsed) - 1)
                if right(strParsed, 1) = chr(10) then strParsed = left(strParsed, len(strParsed) - 1)
        loop
       
        strParsed = replace( strParsed, "%20", " ")
        strParsed = trim(strParsed)
       
        parser = strParsed
end function

3 Responses to ' How to Easily Parse Text With ASP '

Subscribe to comments with RSS or TrackBack to ' How to Easily Parse Text With ASP '.

  1. Peter Bossie said,

    on March 16th, 2008 at 8:05 pm

    We have a network status webpage (updated regularly by our Helpdesk staff). I was trying to find a way to take the text of the page (without the logo banner, navigation menu, blah, blah, blah) and send it out in an e-mail to subscribers.

    This script absolutely rocks!

  2. Peter Bossie said,

    on March 16th, 2008 at 8:08 pm

    We have a network status webpage (updated regularly by our Helpdesk staff). I was trying to find a way to take the text of the page (without the logo banner, navigation menu, blah, blah, blah) and send it out in an e-mail to subscribers.

    This script absolutely rocks!

  3. ash said,

    on July 12th, 2008 at 4:56 pm

    appreciated

Leave a reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word