为什么在vba中用最新的XML DOM 对象会无法解析XML?

如下的XML代码位于xl文件夹的workbook.xml文件中

当用如下的代码进行解析:

oNode变量始终返回nothing,也就是找不到workbookProtection元素节点,始终解析不正确,出错。

经过仔细地分析,原因出在

这条语句,由于Msxml2.DOMDocument.6.0 生成的是最新版本的DOMDocument60对象,它解析xml文件时,用的是最新的标准,要求XML元素都必须有开始和结束标签。而上述的XML代码是不规则的XML代码,有些元素只有开始标签,没有结束标签。所以导致解析不出。

为此,可以将DOMDocument对象换成以下两种均可正常解析:

修改后的代码如下:

 





       

发表评论