2016-06-08 9 views
0

Я не использовал MSXML2.ServerXMLHTTP годами и теперь мне нужно. Когда я использую MSXML2.ServerXMLHTTP для захвата страницы, страница возвращается со сломанными изображениями. Я помню, как это делалось в прошлом, была строка кода, которую я бы использовал, и изображения были бы идеально разрешены. Это похоже на настройку базового url. Кто-нибудь знает, что такое код? Вот код, я использую:MSXML2.ServerXMLHTTP с использованием классического ASP возвращает неработающие изображения

url = "notimportant.com" 

Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") 
    objXML.Open "GET", URL, False 
    objXML.Send() 
    xmlResponse = objXML.responseText 
Set objXML = Nothing 
+0

Как вы можете получить ting изображения. Если 'xmlResponse' содержит теги' img', то вам нужно посмотреть на источник и выяснить, что может быть не так с ними. NB Я рекомендую использовать 'Server.CreateObject (« MSXML2.ServerXMLHTTP.6.0 »)' - он вызывает самую последнюю версию MSXML – John

ответ

1

Вы, вероятно, хотите разместить <base> тег внутри <head> так, что одна строка кода должна быть следующей:

xmlResponse = Replace(objXML.responseText, "<head>", "<head><base href=""http://notimportant.com/"" />", 1, 1, vbTextCompare) 

Или, как более надежный в случае, если головной тэг более сложный и непредсказуемый, например <head class="head etc">, вы можете использовать регулярные выражения для замены:

Dim Re 
Set Re = New RegExp 
    Re.IgnoreCase = True 
    Re.Pattern = "<head[^>]*>" 

xmlResponse = Re.Replace(objXML.responseText, "$&<base href=""http://notimportant.com/"" />")