我和CreateObject有个问题。它一直告诉我这是一个未声明的元素。有什么特别的参考资料我需要补充吗?
excel等的参考资料已经在其中,不能从MSDN获得更多的信息。
Public Function BBANtoBIC(ByVal BBAN As String) As String
Dim xd As Object
xd = CreateObject("msxml2.domdocument.4.0")
xd.Load("http://www.ibanbic.be/IBANBIC.asmx/BBANtoBIC?value=" & BBAN)
Do While xd.readyState <> 4
DoEvents()
Loop
BBANtoBIC = xd.Text
End Function发布于 2013-10-07 13:12:07
"msxml2.domdocument.4.0“可能没有安装在您的系统中。从2001年开始。您可能应该使用"Msxml2.DOMDocument.6.0“。请参阅在中使用MSXML的正确版本
发布于 2013-10-07 13:16:58
通过这个函数,它所做的就是返回文档的文本。它实际上对xml没有任何作用。因此,您可以将其替换为:
Public Function BBANtoBIC(ByVal BBAN As String) As String
Using wc As New System.Net.WebClient()
Return wc.DownloadString("http://www.ibanbic.be/IBANBIC.asmx/BBANtoBIC?value=" & BBAN)
End Using
End Function我只看到两个理由,为什么这可能不是真的。第一种情况是,如果您正在计算on文档对象,以确保您下载的内容确实是有效的、格式良好的xml,那么在调用函数的地方应该会出现错误处理代码。第二种情况是,如果DoEvents等待循环是为了程序响应而不是等待xml解析器.这也是非常糟糕的设计。以这种方式使用DoEvents()可能会产生副作用。如果只是等待xml解析器,那么新代码应该完全避免这种延迟。
如果您确实需要解析/验证xml,那么至少有三种不同的方法可以在.Net框架中实现,而不需要依赖CreateObject()。不应该需要在CreateObject()中使用.Net。历史
https://stackoverflow.com/questions/19225236
复制相似问题