2013-07-09 3 views
-2

Я использую следующий классический код ASP для извлечения содержимого с одной из веб-страниц.Регулярное выражение для извлечения HTML-падающего тега. Классический ASP

Этой веб-страница имеет один переключатель, то, что я хочу сделать, это дисплей, выберите поле только в réponse, так что не уверен, что я должен изменить здесь strPattern = "<select>(.*?)<\/select>"

HTML Dropdown код, который я должен быть доступен

<select onchange="change_option('SELECT___MC-TRIMC350___56',this.options[this.selectedIndex].value)" name="SELECT___MC-TRIMC350___56" class=" PIN_1373378891415_hazClick"> 
<option value="634">1 GAL [$64.99]</option> 
<option value="629" class=" PIN_1373378891415_hazClick">5 GAL PAIL [$144.99]</option> 
<option value="637">54 GAL DRUM [$2,225.00]</option> 
</select> 

Классический жерех код для чтения Названия страницы, я хочу, чтобы это изменить так, что отображается окно выбора, как это

Dim strURL, objXMLHTTP, objXML, strContents 
Dim objRegExp, strHTML, strPattern, colMatches, strTitle 

strURL= "http://abc.com/testhtm" 


Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") 
'Or if this doesn't work then try : 
'Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") 

objXMLHTTP.Open "GET", strURL, False 

objXMLHTTP.Send 

strContents = objXMLHTTP.ResponseText 

Set objXMLHTTP = Nothing 

Set objRegExp = New RegExp 

strPattern = "<select>(.*?)<\/select>" 

objRegExp.Pattern = strPattern 
objRegExp.IgnoreCase = True 
objRegExp.Global = True 

Set colMatches = objRegExp.Execute(strContents) 

If colMatches.Count > 0 then 
    strTitle = objMatches(0).Value 
Else 
    strTitle = "" 
End If 

Set objRegExp = Nothing 

Response.write(strTitle) 

ответ

2

<select.*>[\w\W]*<\/select>

Я не уверен, если . к захватывает новые строки в классический ASP, поэтому я выбрал \w\W вместо этого. Вы нуждаетесь в .* между <select и > пропустить мимо HTML атрибуты (onchange и т.д.)

UPDATE: У вас ошибка в коде. Вы никогда не устанавливали или не объявляли objMatches. Вместо этого вы должны использовать colMatches.

If colMatches.Count > 0 Then 
    strTitle = colMatches(0).Value 
Else 
    strTitle = "" 
End If 
+0

я попытался оленья кожа показывать ничего – user580950

+1

Попробуйте мое обновление .. – basher

+0

Большое спасибо за вашу помощь, мой друг :) – user580950

Смежные вопросы