Asp classic 在经典ASP读取cXML文件时,是否需要将dtd链接指向本地文件?

Asp classic 在经典ASP读取cXML文件时,是否需要将dtd链接指向本地文件?,asp-classic,runtime-error,dtd,cxml,cxml-commercexml,Asp Classic,Runtime Error,Dtd,Cxml,Cxml Commercexml,不幸的是,我们继承了一个旧的经典ASP站点,正在为一个往返打卡站点编写新代码。在读取cXML文件时,我们不断地在第二行出现错误!DOCTYPE cXML系统“http://xml.../cXML.dtd。 如果我们捕获dtd文件的位置并将其更改为本地文件,即file:///c:/....dtd它可以工作。使用http位置没有办法让它工作吗?我宁愿不要将所有dtd文件版本都存储在本地 我们的守则是: Dim olddtd值 Dim newdtdvalue Dim xmlfilename olddt

不幸的是,我们继承了一个旧的经典ASP站点,正在为一个往返打卡站点编写新代码。在读取cXML文件时,我们不断地在第二行出现错误
!DOCTYPE cXML系统“http://xml.../cXML.dtd
。 如果我们捕获
dtd
文件的位置并将其更改为本地文件,即
file:///c:/....dtd
它可以工作。使用
http
位置没有办法让它工作吗?我宁愿不要将所有
dtd
文件版本都存储在本地

我们的守则是:

Dim olddtd值
Dim newdtdvalue
Dim xmlfilename
olddtdvalue=”http://xml.cxml.org/schemas/cXML/"
newdtdvalue=”file:///d:/Websites/FSIResponsive/cXML/"
xmlfilename=“PORS_u”&formatdatetime(现在,vblongdate)&“&replace(formatdatetime(现在,vblongtime),”:“,”和“.xml”
设置fs=Server.CreateObject(“Scripting.FileSystemObject”)
设置f=fs.CreateTextFile(“d:\WebSites\fsireresponsive\cXML\InFiles\”&xmlfilename,true)
f、 写入(“远程主机:”&request.ServerVariables(“远程主机”)&vbcrlf&vbcrlf)
totalBytes=Request.totalBytes
如果totalBytes>0,则
xml=Request.BinaryRead(totalBytes)
对于i=1到totalBytes
xmlstr=xmlstr+String(1,AscB(MidB(xml,i,1)))
下一个
f、 写入(xmlstr)
xml2=xmlstr
xml2=Replace(xml2,旧DTD值,新DTD值)
如果结束
设置xdoc=Server.CreateObject(“Microsoft.XMLDOM”)
'Set xdoc=Server.CreateObject(“MSXML2.DOMDocument.6.0”)
xdoc.ValidateOnParse=True
xdoc.async=False
xdoc.resolveExternals=True
'response.write xml2
loadStatus=xdoc.loadXML(xml2)
如您所见,我们已经尝试使用
MSXML2.DOMDocument.6.0
,但这也不起作用

谢谢, 艾伦

更新: 以下是我最终得到的代码:

Dim xmlfilename
Dim URL
totalBytes = Request.TotalBytes
If totalBytes > 0 Then
    xml = Request.BinaryRead( totalBytes )
    for i = 1 to totalBytes
        xmlstr = xmlstr + String(1,AscB(MidB(xml, i, 1)))
    Next
    xml2 = xmlstr
End if
Set xdoc = Server.CreateObject("MSXML2.DOMDocument.6.0")
xdoc.setProperty "ServerHTTPRequest", True
xdoc.setProperty "ProhibitDTD",False
xdoc.resolveExternals = True
xdoc.ValidateOnParse = True
xdoc.async =  False
loadStatus = xdoc.LoadXML(xml2)
艾伦