我正在将一个 VB6 项目移植到 C#。我有以下我不完全理解的 VB6 代码:
Dim xmlDoc As Object
Set xmlDoc = CreateObject("MSXML2.DomDocument." & sVer)
xmlDoc.setProperty "NewParser", True
我以前从未做过VB编码。有人可以解释上面几行的作用以及Java或C#等语言中的等效代码是什么。谢谢!
快速了解它的作用:
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()。
在不了解 VB6 的情况下,这听起来很像 XML 解析。MSXML2.DomDocument
按照建议在 google.com 上投掷,将MSDN 中的这份文档作为 #1 结果提供,这应该会引导您朝着正确的方向前进。