2010-04-22 67 views
0

我有这个调用.net 2010编写的web服务的vbscript。 我在最后一行发生错误。无法弄清楚。 这是Web服务: http://www.kollelbaaleibatim.com/services/getinfo.asmx/GetFronpageInfovbscript xml问题

Dim xmlDOC 
    Dim bOK 
    Dim J 
    Dim HTTP 
    Dim ImagePathLeftCar, ImagePathRightCar 
    Dim CarIDLeft, CarIDRight 
    Dim ShortTitleLeftCar, ShortTitleRightCar 
    Dim DescriptionLeftCar, DescriptionRightCar 
    Dim PriceLeftCar, PriceRightCar 

    Set HTTP = CreateObject("MSXML2.XMLHTTP") 
    Set xmlDOC =CreateObject("MSXML.DOMDocument") 
    xmlDOC.Async=False 

    HTTP.Open "GET","http://www.kollelbaaleibatim.com/services/getinfo.asmx/GetFronpageInfo", false 
    HTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    HTTP.Send() 

    dim xmldoc2 
    set xmldoc2 = Server.CreateObject("Microsoft.XMLDOM") 
    xmldoc2.async = False 
    bOK = xmldoc2.load(HTTP.responseXML) 

    if Not bOK then 
     response.write("Error loading XML from HTTP") 
    end if 

    response.write(xmldoc2.documentElement.xml)'Prints a good looking xml 
     ShortTitleLeftCar = xmldoc2.documentElement.selectSingleNode("LeftCarShortTitle").text 'ERROR HERE 
+0

这似乎是传统的ASP,避免MSXML2.XMLHTTP,使用MSXML2.ServerXMLHTTP – AnthonyWJones 2010-04-23 12:32:50

回答

0

这不是一个VBScript的问题,它是一个XPath问题。 xmldoc2.documentElement.selectSingleNode("LeftCarShortTitle")将尝试找到“LeftCarShortTitle”元素作为根的孩子....在你的情况下,因为在此之前有各种级别,即<string><Root><FrontpageData>,所以你的情况将不起作用。

更新您的XPath是:

//LeftCarShortTitle

这将遍历文档的后代,应该找到你要找的节点。

+0

虽然作为一般规则应该避免,如果XML结构是已知的显式路径更健壮。 – AnthonyWJones 2010-04-23 12:26:45

+0

@Anthony,是的,我同意。然而,为了解决这个问题,我认为上面的考虑XML响应不是很大。 – James 2010-04-23 12:37:02