【发布时间】:2016-06-17 15:53:26
【问题描述】:
我正在开发一个基于 VBA 的插件。我从 XML 文件导入数据。我想对该数据应用过滤器。我不知道如何存储和组织数据。
XML 文件:
<?xml version="1.0"?>
<TestClass>
<TestObject>
<Site>Facebook</Site>
<Name>ABC</Name>
<URL>https://www.facebook.com/ABC/</URL>
</TestObject>
<TestObject>
<Site>Facebook</Site>
<Name>XYZ</Name>
<URL>https://www.facebook.com/XYZ/</URL>
</TestObject>
<TestObject>
<Site>Twitter</Site>
<Name>ABC</Name>
<URL>https://www.twitter.com/ABC/</URL>
</TestObject>
<TestObject>
<Site>Facebook</Site>
<Name>XYZ</Name>
<URL>https://www.twitter.com/XYZ/</URL>
</TestObject>
</TestClass>
这是我的代码。
Set oXMLFile = CreateObject("Microsoft.XMLDOM")
XMLFileName = "C:\Users\abc\Desktop\TestFiles\TestData.xml"
oXMLFile.Load (XMLFileName)
Set Sites = oXMLFile.SelectNodes("TestClass/TestObject/Site/text()")
Set Names = oXMLFile.SelectNodes("TestClass/TestObject/Name/text()")
Set URLs = oXMLFile.SelectNodes("TestClass/TestObject/URL/text()")
Public SiteArray(100) As String
Public NameArray(100) As String
Public URLArray(100) As String
For i = 0 To (Sites.Length - 1)
SiteArray(i) = Sites(i).NodeValue
NameArray(i) = Names(i).NodeValue
URLArray(i) = URLs(i).NodeValue
Next
现在我不知道如何获取 Name 的列表,其中 Site 是 Facebook。我还想获取URL 的Twitter 列表。
有人可以建议我在上述情况下过滤的机制吗?
【问题讨论】:
-
您的数据当前保存在数组中;您将需要遍历它们以找到您要查找的内容。您可能需要考虑一个二维数组并将站点、名称和 url 存储在单个元素中,这样所有内容都保持紧密耦合。
-
@Dave 除了存储在数组中更适合过滤器之外,您能否建议我使用其他方法。当我刚开始工作时,我可以相应地改变我的流程。