いくつかの短いXMLセグメント(それぞれにファイルの説明があります)を含むXPathNodeIteratorを作成しました。
XPathNodeIterator segments = node.SelectDescendants("Segment", node.NamespaceURI, false);
さて、それらをループしようとすると、毎回最初のセグメントだけが選択されているようです。これが私が試したループの2つのバージョンです(たとえば、File / Filesクラスのみ):
while (segments.MoveNext())
{
File f = GetSingleFileDataFromSegment(segments.Current);
files.Add(f);
}
別の試み:
foreach (XPathNavigator seg in segments)
{
File f = GetSingleFileDataFromSegment(seg);
files.Add(f);
}
WatchまたはQuickwatchを使用してループ内の単一のセグメントを表示すると、すべての異なるセグメントが一度に1つずつ選択されるように見えますが、最終的には「ファイル」に最初のセグメントの複数のコピーが含まれます。
これはXPathNodeIteratorでの通常の動作ですか?それともここに何か足りないものがありますか?現在、.NETFramework3.5を使用しています。