我有一个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节点”。
我必须遗漏一些简单的东西,但我只是没有看到它。
有什么想法吗?
答案 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