VBA和XML-搜索trhoughXML文档以通过它查找特定节点';s值

VBA和XML-搜索trhoughXML文档以通过它查找特定节点';s值,xml,vba,Xml,Vba,如何使用VBA根据节点名称和值搜索XML结构以查找特定节点?换句话说,是否可以在XML结构上执行类似SQL的命令来查找我要查找的内容 例如,假设我有以下XML结构: <House> <Kitchen> <Appliance> <Name>Refrigerator</Name> <Brand>Maytag</Brand> <Model>F2039-

如何使用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>

冰箱
梅塔格
F2039-39
烤面包机
黑白相间的
B8d-k30


我想找到一种方法,找到所有的烤面包机,这是由布莱克和德克,与B8d-k30使用VBA模型。这可能吗

有一种VBA支持的XML查询语言,即XPath

“我想找到所有由black and decker制造、型号为B8d-k30的烤面包机”

在xpath中,可以将其转换为以下内容:

//Appliance[Name='Toaster' and Brand='Black and Decker' and Model='B8d-k30']
关于上面xpath的简要说明:

  • //设备
    :查找所有

    进一步参考:

    • xpath 1.0规范:
    • xpath简介:

    快速而肮脏的方式,保存xml文件(如果它是某个字符串,您可以使用VBA保存它)。然后通过
    工作簿将XML加载到工作簿中。打开
    。现在您可以看到表格格式的数据。使用VBA/公式查找您的数据。谢谢。对于未来的读者来说,这些链接将与这个答案一起使用。附加问题:如果查询包含and和OR的组合,该怎么办?例如,我想要所有的元素都有烤面包机,它们要么有black and decker品牌,要么有toolset(在上面的例子中没有列出)?没关系,我想出来了。要添加and和OR,请使用括号。