[英]VBA and XML - Search trhough XML doc to locate a specific node by it's value
如何使用VBA根据节点名称和值搜索XML结构以查找特定节点? 换句话说,是否可以在XML结构上执行类似SQL的命令来查找所需内容?
例如,假设我具有以下XML结构:
<House>
<Kitchen>
<Appliance>
<Name>Refrigerator</Name>
<Brand>Maytag</Brand>
<Model>F2039-39</Model>
</Appliance>
<Appliance>
<Name>Toaster</Name>
<Brand>Black and Decker</Brand>
<Model>B8d-k30</Model>
</Appliance>
</Kitchen>
我想找到一种使用VBA的B8d-k30模型查找所有黑色和黑色的烤面包机的方法。 这可能吗?
VBA支持一种XML查询语言,即XPath。
“我想找到一种使用B8d-k30型号的黑色烤面包机和黑色烤面包机制作的所有烤面包机的方法”
在xpath中,可以将其转换为以下内容:
//Appliance[Name='Toaster' and Brand='Black and Decker' and Model='B8d-k30']
关于上述xpath的简要说明:
//Appliance
:在XML文档中的任何位置找到所有<Appliance>
元素 []
:使用以下条件过滤当前上下文元素(在这种情况下为<Appliance>
)。 Name='Toaster'
:至少具有一个子元素<Name>
其值等于"Toaster"
and Brand='Black and Decker'
:并且至少具有一个子元素<Brand>
其值等于"Black and Decker"
and Model='B8d-k30'
:并且至少具有一个子元素<Model>
其值等于"B8d-k30"
我对VBA不熟悉,因此没有我提供的VBA代码示例。 无论如何,如果您在Internet上搜索,那么有很多关于如何在VBA中执行xpath查询的示例,我在此链接中找到了一个示例。
供进一步参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.