theJBRU
theJBRU

Reputation: 817

How to match and return part of an HTML file in ASP

I'm looking to match a part of several HTML files that get passed into a loop in an ASP file and then return that part of the HTML files to include in my output. Here's my code so far:

<%for i=0 to uBound(fileIDs) ' fileIDs is an array of URLs
    dim srcText, outText, url
    Set ex = New RegExp
    ex.Global = true
    ex.IgnoreCase = true
    ex.Pattern = "<section>[\S\s]+</section>" ' This finds the HTML I want
    url = fileIDs(i)
    Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
    xmlhttp.open "GET", url, false
    xmlhttp.send ""
    srcText = xmlhttp.responseText
    outputText = ex.Execute(mediaSrcText) ' I expect this to be the HTML I want
    Response.Write(outputText.Item(0).Value) ' This would then return the first instance
    set xmlhttp = nothing
next %>

I've tested the regular expression on my files and it's matching the parts that I want it to.

when I run the page containing this code, I get an error:

Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method 

on the line with ex.Execute. I've also tried ex.Match, but got the same error. So I'm clearly missing the proper method for returning the match so I can write it out into the file. What is that method? Or am I approaching the problem from the wrong direction?

Thanks!

Upvotes: 1

Views: 235

Answers (1)

Anodyne
Anodyne

Reputation: 1852

You need a Set when you're assigning outputText:

Set outputText = ex.Execute(mediaSrcText)

I should probably also say that you really shouldn't be using regular expressions to attempt to parse HTML, although I don't know enough about the context to offer more specific advice.

Upvotes: 1

Related Questions