使用经典ASP传递远程XML文件

时间:2014-10-17 00:14:41

标签: xml web-services asp-classic xml-parsing parse-error

我正在访问webService,需要传递XML并插入数据库。要构建代码,我浏览文件,下载它,编写代码来存储信息。伟大的所有人都在本地工作得很好!

所以我更改代码以加载URL并且我遇到了问题。当我问parseError对象(errorCode,reason和line)有什么问题时,我得到了这个:

XML Passer Object - Error Code = System error: -2147012889. 
XML Passer Object - Error Reason = -2147012889
XML Passer Object - Error Line = 0 

这个' -2147012889'几乎没有任何信息。错误代码。看完代码并对其进行码头审查。没有什么看起来像是一个问题。奇怪的是,当我将这个XML文件放在我们的一个服务器上并通过我们的一个URL运行传递代码时,它运行正常。这是一个现实的测试吗?只需将XML文件放在我们的服务器上即可点击已经提供给我的webService URL(这是天气提供商,这是澳大利亚)。

这是XML的一个非常简洁和消毒的版本:

    <?xml version="1.0" encoding="iso-8859-1" ?>
    <data>
      <metadata>
        <sector>weather</sector>
        <title>WeatherProvider</title>
        <last_commit>2014-08-11 09:15:22 +1000 (Mon, 11 Aug 2014)</last_commit>
        <validity>
          <date>2014-08-12</date>
          <day_name>Tuesday</day_name>
        </validity>
      </metadata>
      <weather>
        <countries>
          <country code="AU" name="Australia" region="Oceania">
            <location type="APLOC" code="6700" name="Addington" state="VIC" postcode="3352">
              <conditions>
                <related_location type="SITE" code="89002" name="Ballarat Ap"  state="VIC">
                </related_location>
                <obs_time_local tz="EST">2014-08-12T18:00:00</obs_time_local>
                <temp_c units="&#176;C">6.2</temp_c>
                <dp_c units="&#176;C">5.9</dp_c>
              </conditions>
            </location>
          </country>
        </countries>
      </weather>
    </data>

这是VBScript的一个非常简化的版本:

<% 
Dim objXML, URL
URL = "http://theURL.com/theXMLFileName.xml"
Set objxml = Server.CreateObject("MSXML2.DOMDocument")
'Set objxml = Server.CreateObject("Microsoft.XMLDOM")
'Set objXML = Server.CreateObject("MSXML2.DOMDocument.6.0")
objXML.setProperty "ServerHTTPRequest", True
objXML.async =  False
objXML.Load URL
Response.Write "XML Passer Object - Error Code = " & objXML.parseError.reason & "<BR>"
Response.Write "XML Passer Object - Error Reason = " & objXML.parseError.errorCode & "<BR>"
Response.Write "XML Passer Object - Error Line = " & objXML.parseError.line & "<BR><br>"
Response.Write "ASP Error Object Err.Des = " & Err.Description & "<br><br>"
dim last_commit
set last_commit     = objxml.getElementsByTagName("data/metadata/last_commit")
response.write "The expected last_commit value = " & last_commit.item(0).Text & "<br>"
%>

当我在本地浏览文件或将其作为XML文件放在我们的某个服务器上并通过上述代码浏览到该文件时,输出如下:

XML Passer Object - Error Code = 
XML Passer Object - Error Reason = 0
XML Passer Object - Error Line = 0

ASP Error Object Err.Des = 

The expected last_commit value = 2014-08-11 09:15:22 +1000 (Mon, 11 Aug 2014)  

这是浏览第三方webService URL时出现问题的输出(注意第21行是编写&#39; last_commit.item(0).Text&#39;)的最后一行代码:

XML Passer Object - Error Code = System error: -2147012889. 
XML Passer Object - Error Reason = -2147012889
XML Passer Object - Error Line = 0

ASP Error Object Err.Des = 

Microsoft VBScript runtime error '800a01a8'

Object required: '[object]'

/bl/mattTest/XMLToASPRemoteBodyFullCode.asp, line 21

我非常坚持这一个。从未见过这样的东西。在此先感谢您的帮助

0 个答案:

没有答案