MSXML.DOMDocument 不支持任何方法?
MSXML.DOMDocument doesn't support any method?
我在使用 MSXML2.DOMDocument ActiveX 对象时遇到了一个奇怪的问题。这是我的代码:
var doc = new ActiveXObject('MSXML2.DOMDocument.6.0');
doc.LoadXML('<test1><test2>Hello!</test2></test1>');
doc变量的类型是object,第一行代码没有异常。但是第二行抛出该对象不支持该方法。我真的不明白为什么,但似乎在任何方法(我尝试了 LoadXML、Load、Async 等)上都失败了,并显示了相同的消息。
你最大的问题是方法名是loadXML()
,不是LoadXML()
。方法名称区分大小写。
如果您在尝试找出特定 COM 对象支持的方法时遇到困难,您可以使用 PowerShell 列出可用的方法,如下所示:
powershell "new-object -COM MSXML2.DOMDocument.6.0 | gm"
此外,如果您发现使用该字符串在 DOM 中导航时遇到问题,您可能需要在 <test>
标记之前添加 <?xml version="1.0"?>
。 MS 的一些 XML 解析器对有效的、格式良好的 XML 结构很迂腐。我不确定 MSXML2.DOMDocument.6.0
对这些事情有多严格或宽容。
我在使用 MSXML2.DOMDocument ActiveX 对象时遇到了一个奇怪的问题。这是我的代码:
var doc = new ActiveXObject('MSXML2.DOMDocument.6.0');
doc.LoadXML('<test1><test2>Hello!</test2></test1>');
doc变量的类型是object,第一行代码没有异常。但是第二行抛出该对象不支持该方法。我真的不明白为什么,但似乎在任何方法(我尝试了 LoadXML、Load、Async 等)上都失败了,并显示了相同的消息。
你最大的问题是方法名是loadXML()
,不是LoadXML()
。方法名称区分大小写。
如果您在尝试找出特定 COM 对象支持的方法时遇到困难,您可以使用 PowerShell 列出可用的方法,如下所示:
powershell "new-object -COM MSXML2.DOMDocument.6.0 | gm"
此外,如果您发现使用该字符串在 DOM 中导航时遇到问题,您可能需要在 <test>
标记之前添加 <?xml version="1.0"?>
。 MS 的一些 XML 解析器对有效的、格式良好的 XML 结构很迂腐。我不确定 MSXML2.DOMDocument.6.0
对这些事情有多严格或宽容。