使用VBA查询xml属性值并将其解析为XLS
问题描述:
我试图打开/加载在B2
范围内的Excel工作表中指定的XML文件。然后,搜索name=FUNCTIONAL_ITEM
的XML属性列表并获取">
后的所有属性值。使用VBA查询xml属性值并将其解析为XLS
在下面的示例中,我想提取出值8
,9
和10
。
<Attribute name="BIN" dataType="String" unit="" multiplier="" tag="LINE,MRPM">1</Attribute>
<Attribute name="FUNCTIONAL_ITEM" dataType="Double" unit="" multiplier="" tag="LINE,LINE DB">8</Attribute>
<Attribute name="FUNCTIONAL_ITEM" dataType="Double" unit="" multiplier="" tag="LINE,LINE DB">9</Attribute>
<Attribute name="FUNCTIONAL_ITEM" dataType="Double" unit="" multiplier="" tag="LINE,LINE DB">10</Attribute>
有人请指出我在正确的方向来实现这一点。
答
您需要使用的是XPath。假设你有一个DomDocument60
对象XML文档,我们称之为d
和你声明的变量IXMLDOMNodeList
称为i
然后使用此:
Set i = d.selectNodes("//Attribute[@name='FUNCTIONAL ITEM']")
然后,您可以通过节点迭代中i
和提取来自每个节点的text
属性。
这里有一个相当小的程序来演示(你需要添加一个引用到“微软XML,V6.0”通过工具>参考,如果你还没有这样做的话):
Sub main()
Dim d As DOMDocument60
Dim i As IXMLDOMNodeList
Dim n As IXMLDOMNode
Set d = New DOMDocument60
d.Load 'file path goes here
Debug.Print "*****"
Set i = d.selectNodes("//Attribute[@name='FUNCTIONAL ITEM']")
For Each n In i
Debug.Print n.Text
Next n
Debug.Print "*****"
End Sub
+0
非常感谢你....它的工作...谢谢你 – LeenNew 2011-03-08 02:39:35
对不起,此问题是广泛的。将其分解为独立的步骤和研究。 1.从范围中检索文件名。 2.打开一个Xml文件。 3.从VBA解析Xml。我猜你可以在Stack Overflow找到所有已经*的答案。如果不是,请提出具体问题。 – Benjol 2011-03-04 12:02:40