如何在vba中通过XPath访问操作xml节点?

用XML DOM 操作XML时,可以使用getElementsByTagName方法访问操作节点,也可以通过selectSingleNode方法和selectNodes方法访问操作节点。

其中用selectSingleNode方法和selectNodes方法返回节点时,需要使用XPath作为参数。

比如有一段xml语句如下:

<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

可以使用getElementsByTagName方法返回第一个book元素节点:

  Set oNode = oXml.getElementsByTagName("book")(0)

也可以使用SelectSingleNode方法返回第一个元素的节点:

 Set oNode = oXml.SelectSingleNode("//book")

还可以使用SelectNodes方法返回book元素的集合,然后用索引返回第一个元素:

Set oNode = oXml.SelectNodes("//book")(0)

其中//book表示选取所有book节点,不论它们在文档的哪个位置。

如果要返回某个节点下的任意一个节点,则可以使用.表示当前节点,xpath可以表示为如下的形式

.//book/price

记住一个点.表示当前节点。

       

发表评论