【问题标题】:Msxml.DOMDocument, Microsoft.XMLDOM, and JScript/WSHMsxml.DOMDocument、Microsoft.XMLDOM 和 JScript/WSH
【发布时间】:2014-02-24 14:37:06
【问题描述】:

我正在尝试创建一个对象以稍后使用 XML,但没有运气:

var objXML = new ActiveXObject( "Microsoft.XMLDOM" );
WScript.Echo("objXML:"+objXML.constructor); 

var objXML2 =  WScript.CreateObject("Msxml.DOMDocument");
WScript.Echo("objXML2:"+objXML2.constructor);

输出是

Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

objXML:undefined
objXML2:undefined

操作系统:Win2003 Ent SP2

我做错了什么? 假设我不能在服务器上加载任何自定义库 - 仅使用 Windows 默认库,我该如何操作 XML 文件?

【问题讨论】:

    标签: xml domdocument jscript xmldom


    【解决方案1】:

    progid Msxml.DOMDocumentMicrosoft.XMLDOM 对应的对象不会通过 IDispatch 公开名为 constructor 的成员。

    要验证对象是否已成功返回,您可以尝试使用属于IXMLDOMDocument 定义的接口的一部分的成员。

    例如,这样改变你的脚本:

    var objXML = new ActiveXObject( "Microsoft.XMLDOM" );
    objXML.loadXML("<x/>")
    WScript.Echo("objXML:"+objXML.xml); 
    
    var objXML2 =  WScript.CreateObject("Msxml.DOMDocument");
    WScript.Echo("objXML2:"+objXML2.nodeTypeString);
    

    给予:

    objXML:<x/> 
    objXML2:document
    

    请注意,如果未创建对象,您将在尝试创建时收到异常(“无法找到自动化类...”),如果您输入错误,您会看到该异常天才,因此:new ActiveXObject( "MicrosoftX.MLDOM" );

    【讨论】:

    • 如何遍历数据?我尝试了for (prop in objXML2){Enumerator(objXML2.Properties_) 但没有运气
    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 2010-10-06
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多