Я пытаюсь выполнить преобразование xml на стороне сервера и указываю шаблоны, которые хочу использовать в global.asa для путей, которые я указываю с помощью server.MapPath. Для файлов в одной папке некоторые находят и один выдает ошибку. Есть идеи, почему?
Например, первый найден, второй не является server.MapPath("/website_root/subFolder/XSL/A.xsl")
server.MapPath("/website_root/subFolder/XSL/B.xsl")
Ошибка говорит об ошибке msxml3.dll «80070003». Система не может найти указанный путь
Заранее спасибо.
РЕДАКТИРОВАТЬ: проблема заключается в добавлении новых шаблонов, старые объявления для файлов в той же папке отображаются нормально. Код ниже:
Dim oXSL, oXSLTemplateA, oXSLTemplateB, oXSLTemplateC, oXSLTemplateD, oXSLTemplateE
Set oXSL = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
'A.xsl
oXSL.load server.MapPath("projectRoot/SubFolder/XSL/A.xsl")
Set oXSLTemplateA = Server.CreateObject("Msxml2.XSLTemplate")
oXSLTemplateA.stylesheet = oXSL
Set Application("ATemplate") = oXSLTemplateA
'B.xsl
Set oXSL = Nothing
Set oXSL = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
oXSL.load server.MapPath("/projectRoot/SubFolder/XSL/B.xsl")
Set oXSLTemplateB = Server.CreateObject("Msxml2.XSLTemplate")
oXSLTemplateB.stylesheet = oXSL 'ERROR ON THIS LINE
Set Application("BTemplate") = oXSLTemplateB
'C.xsl
Set oXSL = Nothing
Set oXSL = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
oXSL.load server.MapPath("/projectRoot/SubFolder2/XSL/C.xsl")
Set oXSLTemplateC = Server.CreateObject("Msxml2.XSLTemplate")
oXSLTemplateC.stylesheet = oXSL
Set Application("CTemplate") = oXSLTemplateC
'D.xsl
Set oXSL = Nothing
Set oXSL = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
oXSL.load server.MapPath("/projectRoot/SubFolder2/XSL/D.xsl")
Set oXSLTemplateD = Server.CreateObject("Msxml2.XSLTemplate")
oXSLTemplateD.stylesheet = oXSL
Set Application("DTemplate") = oXSLTemplateD
'E.xsl
Set oXSL = Nothing
Set oXSL = Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
oXSL.load server.MapPath("/projectRoot/SubFolder2/XSL/E.xsl")
Set oXSLTemplateE = Server.CreateObject("Msxml2.XSLTemplate")
oXSLTemplateE.stylesheet = oXSL 'ERROR ON THIS LINE
Set Application("ETemplate") = oXSLTemplateE
РЕДАКТИРОВАТЬ: Если я изменю E.xsl на случайное имя, которого, как я знаю, не существует. Ошибка отличается, она будет говорить об ошибке msxml3.dll «80004005». Таблица стилей не содержит элемент документа. Таблица стилей может быть пустой или может быть неправильно сформированным XML-документом.
website_root
? Путь вServer.MapPath
должен быть после root, т.е. если ваш site_root остается для root, тогда вы вызываетеServer.MapPath("/subFolder/XSL/A.xsl")
. Отладьте свой код с помощью Response.Write и выведите полный путь после выполнения Server.MapPath. Сообщение ясно говорит, что не может найти путь. - person user2316116   schedule 11.05.2020response.write Server.MapPath("/website_root/subFolder/XSL/A.xsl")
, чтобы убедиться, что вы получили ожидаемый путь, который существует. - person user2316116   schedule 11.05.2020oXSL.load server.MapPath("projectRoot/SubFolder/XSL/A.xsl")
, поэтому, возможно, вам следует удалить его на других? - person Daniel Nordh   schedule 12.05.2020