ASP经典:需要对象:'objContent.documentElement'

时间:2013-09-11 04:10:22

标签: asp-classic vbscript

我正在开发一个使用ASP classic的项目。我遇到了这个错误:

  

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

1 个答案:

答案 0 :(得分:0)

将oracle的论点带回家:

除了所有意外,您的脚本是:

Option Explicit

Dim objContent : Set objContent = CreateObject("Msxml2.DOMDocument.3.0")
objContent.load "nosuch.xml"
objContent.documentElement.appendChild "pipapo"

输出:

cscript 18732533.vbs
...\18732533.vbs(5, 1) Microsoft VBScript runtime error: Object required: 'ocumentElement'

如果您遵循“通过检查错误确保您的乐观假设”这一规则,您的脚本将如下所示:

Option Explicit

Dim objContent : Set objContent = CreateObject("Msxml2.DOMDocument.3.0")
objContent.load "nosuch.xml"
If 0 = objContent.ParseError Then
   objContent.documentElement.appendChild "pipapo"
Else
   WScript.Echo objContent.ParseError.Reason
End If

输出:

cscript 18732533.vbs
The system cannot locate the resource specified.

(相对于有关现有文件格式不正确的内容的一些信息)。

相关问题