VBA函数读取XML节点

我对使用XML非常新,想知道是否有人可以帮助我开始?

我想写一个VBA函数,可以输出一个数组只有列表名称[即arrays(“侦察”,“安全”,“性能”)]。

我还需要有一个function,只输出一个特定的“To”节点的文本。 例如,我可以调用这个函数来提取将要被调用的名字,这个名字是指参考Recon列表[即Array(“Jane”,“Ashley”)或Array(“Jane; Ashley”))输出,这将使最有意义的作品为我)

另外,如果有更好的方法来构造这个XML,我将会改变,因为我从头开始写这个,最后我的VBA用户表单将最终创build和修改这个文件。

<?xml version="1.0" encoding="utf-8"?> <Settings> <DistributionLists> <List> <Name>Recon</Name> <TO>John;Bob;Rob;Chris;</TO> <CC>Jane;Ashley;</CC> <BCC>Brent;</BCC> </List> <List> <Name>Safety Metrics</Name> <TO></TO> <CC></CC> <BCC></BCC> </List> <List> <Name>Performance Report</Name> <TO></TO> <CC></CC> <BCC></BCC> </List> </DistributionLists> <Presets> </Presets> </Settings> 

这是获取To数组的示例。 好的起点为您获得其他arrays/节点。

 Function GetToArr() Dim XDoc As Object Dim xEmpDetails As Object Dim xEmployee As Object Dim xChild As Object Set XDoc = CreateObject("MSXML2.DOMDocument") XDoc.async = False XDoc.validateOnParse = False XDoc.Load ("C:\[path]\test.xml") Set items = XDoc.DocumentElement Set Item = items.ChildNodes(0) Set Item = Item.FirstChild Set Item = Item.ChildNodes(1) GetToArr = Split(Item.Text, ";") End Function Sub TestGetToArr() For Each it In GetToArr() Debug.Print it Next it End Sub 

结果:

 John Bob Rob Chris