缺少VB6 DomDocument.SetProperty

缺少VB6 DomDocument.SetProperty,vb6,domdocument,msxml,Vb6,Domdocument,Msxml,我必须使一个旧的VB6应用程序在Windows10上运行。问题是对DomDocument40的引用不是Windows10(或者我认为是Windows7)的一部分,而是使用了DomDocument60(msxml6.dll的一部分)。 线路是: Dim oXMLDom1 As New DOMDocument40 为了确保向后兼容性,我认为最好使用DomDocument,它将自动在系统上使用适当的版本。这是正确的吗 所以我现在的路线是: Dim oXMLDom1 As New DOMDocumen

我必须使一个旧的VB6应用程序在Windows10上运行。问题是对DomDocument40的引用不是Windows10(或者我认为是Windows7)的一部分,而是使用了DomDocument60(msxml6.dll的一部分)。 线路是:

Dim oXMLDom1 As New DOMDocument40
为了确保向后兼容性,我认为最好使用DomDocument,它将自动在系统上使用适当的版本。这是正确的吗

所以我现在的路线是:

Dim oXMLDom1 As New DOMDocument
但是,现在当我尝试运行应用程序时,会出现编译器错误“Method or data member not found.”这与以下行有关(我现在看到msxml6中不支持setProperty):

有人能告诉我,如果使用DomDocument而不是DomDocument40是推荐的解决方案吗。如果是这样的话,我应该如何处理setProperty不再可用的问题


我知道最好的解决办法是用几乎任何其他语言编写;)但这不是一个选项。

这可能不是答案,但您应该能够安全地注释掉这一行,因为XPath是MSXML 4.0以后的默认值。如果应用程序要在Win10上运行,则XPath应该是默认值

编辑

经过一些测试后,我认为您需要做的就是更改以下内容:

Dim oXMLDom1 As New DOMDocument
为此:

Dim oXMLDom1 As New MSXML2.DOMDocument

我让SetProperty方法失败的唯一方法是显式地添加对Microsoft XML 2.0版的引用,并在没有
MSXML2
的情况下声明对象(这也失败了,因为该版本的类名是
MSXML
)。我将
MicrosoftXML,v2.6
中的引用添加到
MicrosoftXML,v6.0
中进行了测试,对所有引用都没有问题。请注意,我在XP机器上做了所有这些测试,因为我现在无法在Win10 PC上测试它,但它应该可以正常工作。

SetProperty
DomDocument
DomDocument40
的成员。您的
DOMDocument
是否实际上是
MSXML2.DOMDocument
?@GSerg但不是DomDocument60我相信我如何知道它使用的是什么MSXML版本?这不是定义DomDocument的目的吗?每个系统上相应的DLL将运行!您可以通过查看项目引用来确定正在使用哪个xml库。选中的引用中有一个(或多个)将是正在使用的xml引用。@TheGrovesy
DomDocument60
。按F2键。这部分是我们面临的问题。我们仍然有一些客户使用Windows XP。因此,is需要从XP一直工作到Windows 10。
Dim oXMLDom1 As New MSXML2.DOMDocument