繁体   English   中英

VBA和XML-通过XML文档搜索其值来查找特定节点

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM