2010-04-22 76 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