-2

我正在将一个 VB6 项目移植到 C#。我有以下我不完全理解的 VB6 代码:

 Dim xmlDoc As Object
 Set xmlDoc = CreateObject("MSXML2.DomDocument." & sVer)
 xmlDoc.setProperty "NewParser", True

我以前从未做过VB编码。有人可以解释上面几行的作用以及Java或C#等语言中的等效代码是什么。谢谢!

4

2 回答 2

1

快速了解它的作用:

Set xmlDoc = CreateObject("MSXML2.DomDocument." & sVer)

此行实例化了 Microsoft 实施的 W3C DOM 标准的特定版本。您不必指定版本 - 您只需要做:

Set xmlDoc = CreateObject("MSXML2.DomDocument")

或者更好的是,添加对最新“Microsoft XML nn”库的引用并执行以下操作:

Dim xmlDoc As MsXml2.DomDocument
Set xmlDoc = New MsXml2.DomDocument

之所以有这么多版本,是因为同一个库有几个稍微不兼容的版本。并且不同的已安装应用程序可能各自使用不同的版本。

至于:

xmlDoc.setProperty "NewParser", True

这是微软对 DOM 的非标准扩展的一个例子。为了支持各种微软特有的行为,他们添加了“二级属性”的概念,这在官方的 W3C DOM 标准中是没有依据的。在这种特定情况下,它将“NewParser”属性设置为 True(请参阅http://msdn.microsoft.com/en-gb/library/windows/desktop/ms767616%28v=vs.85%29.aspx)。这意味着除了 MSXML6.DLL 之外的任何版本。

没有直接的 Java 版本,但此示例允许您基于字符串创建 DOM 对象:

如何在字符串中从 XML 加载 org.w3c.dom.Document?

在此示例中,不存在 setProperty() 调用。

.NET 等价物(在 C# 中)是:

using System.xml

function doIt()
{
    XmlDocument doc = new XmlDocument();
}

XmlDocument 中也不存在 SetProperty()。

于 2013-05-07T14:10:13.807 回答
0

在不了解 VB6 的情况下,这听起来很像 XML 解析。MSXML2.DomDocument按照建议在 google.com 上投掷,将MSDN 中的这份文档作为 #1 结果提供,这应该会引导您朝着正确的方向前进。

于 2013-05-07T11:33:49.710 回答