VB6 DomDocument.SetProperty缺失

时间:2017-12-13 16:32:39

标签: vb6 domdocument msxml

我不得不在Windows 10上运行一个旧的VB6应用程序。问题是对DomDocument40的引用不是Windows 10的一部分(或者我认为是7),而是使用DomDocument60(msxml6.dll的一部分)。 这条线是:

Dim oXMLDom1 As New DOMDocument

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

所以现在就行了:

oXMLDom1.setProperty "SelectionLanguage", "XPath"

但是,现在当我尝试运行应用程序时,我得到编译器错误'方法或数据成员未找到。' 这与以下行有关(我现在请参阅msxml6中的setProperty):

@media only screen and (max-width: 768px) {
  .margin{
    margin-top: 0px;
  }
}
@media only screen and (min-width: 769px) {
  .margin{
    margin-top: 85px;
  }
}

如果使用DomDocument而不是DomDocument40是推荐的解决方案,那么任何人都可以先告诉我。如果是这样,我应该怎样做才能使setProperty不再可用?

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

1 个答案:

答案 0 :(得分:0)

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

修改

经过一些测试后,我认为你需要做的就是改变这个:

Dim oXMLDom1 As New DOMDocument

对此:

Dim oXMLDom1 As New MSXML2.DOMDocument

我让SetProperty方法失败的唯一方法是显式添加对Microsoft XML, version 2.0的引用并声明没有MSXML2的对象(也失败,因为类名是{{1}对于那个版本)。我测试了这个添加从MSXMLMicrosoft XML, v2.6的引用,它对所有这些引用都没有问题。请注意我在XP机器上进行了所有这些测试,因为我现在无法在Win10 PC上进行测试,但它应该可以正常工作。