无法获取XPath查询以返回正确的节点集

时间:2011-06-02 21:01:39

标签: xml vb.net xpath

我有一个xml文件,如下所示:

<Records>
<Record>
 <table>
  <Row>
   <col1>value1</col1>
  </Row>
 </table>
</Record>
<Record>
 <table>
  <Row>
   <col1>value2</col1>
  </Row>
 </table>
</Record><Record>
 <table>
  <Row>
   <col1>value3</col1>
  </Row>
 </table>
</Record>
</Records>

我需要的是在所有记录中选择所有ROW节点,所以我使用的是这样的:

rowiterator = Me.XMLDocument.CreateNavigator.Evaluate("//table/Row")

哪个有效,但它返回的NodeIterator只包含第一条记录中的第一个Row节点!?!

据我所知,这是xpath表达式的正确语法“在文档中的任何位置返回所有具有父表名称的Row节点”。

我必须遗漏一些简单的东西,但我只是没有看到它。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您应该使用XPathNavigator.Select method并循环遍历迭代器。使用XPathNodeIterator.Current property访问循环中的当前XPathNavigator对象。

Dim iter = xmldoc.CreateNavigator().Select("//table/Row")
While (iter.MoveNext())
    Console.WriteLine(iter.Current.Value)
End While