【发布时间】:2013-10-05 06:21:21
【问题描述】:
我正在开发一个使用 ASP 经典的项目。我遇到了这个错误:
Microsoft VBScript 运行时错误“800a01a8”
需要对象:'objContent.documentElement'
/muhproject/includes/clsTransform.asp,第 138 行
如何根据需求将objContent.documentElement 包含到项目中?
文件的第138行如下:
'Attach fragment into pageContentXML
objContent.documentElement.appendChild xDoc2.documentElement
编辑:这是代码的完整功能
'TransformContent - accepts content in XML data, and contentXSL file path
public function TransformContent(scriptNameFull, fragmentXML)
fragmentXML = decodeUTF8(fragmentXML)
'1. Load the content.html (as XML)
Dim objContent
set objContent = Server.CreateObject("Msxml2.DOMDocument.3.0")
Dim contentXSLSpec
contentXSLSpec = rootRel & "/muhproject/template/page/content.xsl" 'this is fixed
objContent.async = false
objContent.validateOnParse = false
objContent.load( server.MapPath(scriptNameFull) )
'2. Load fragmentXML XML fragment
Dim xDoc2
set xDoc2 = Server.CreateObject("Msxml2.DOMDocument.3.0")
xDoc2.Async = false
xDoc2.resolveExternals = false
xDoc2.validateOnParse = false
xDoc2.loadXML(fragmentXML)
'3. Attach fragment into pageContentXML
objContent.documentElement.appendChild xDoc2.documentElement
Dim objXSL
set objXSL = Server.CreateObject("Msxml2.DOMDocument.3.0")
objXSL.async = false
objXSL.validateOnParse = false
objXSL.load( server.mapPath(contentXSLSpec) )
'3. Do the transformation
Dim retVal
retVal = objContent.transformNode(objXSL.documentElement)
set objContent = nothing
set xDoc2 = nothing
set objXSL = nothing
TransformContent = retVal
end function
【问题讨论】:
-
我认为我们需要看看您是如何创建该对象的
objContent。你能再显示一些代码吗,/ -
@SearchAndResQ 我已经编辑了问题
-
我猜你的 XML 有问题;你也可以显示 XML 吗?
-
检查布尔返回值到
xDoc2.loadXML(fragmentXML)以查看XML 是否正确加载,如果没有则检查xDoc2.parseError -
另外,如果您的
documentFragment实际上是一个文档片段(例如它没有单个根元素),请考虑使用createDocumentFragment()。
标签: asp-classic vbscript