Я создал XPathNodeIterator, который содержит несколько коротких сегментов XML (каждый с описанием файла):
XPathNodeIterator segments = node.SelectDescendants("Segment", node.NamespaceURI, false);
Теперь, при попытке их зациклить, кажется, что каждый раз выбирается только первый сегмент. Вот две версии циклов, которые я пробовал (например, классы 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, он выглядит так, как и должно быть, все разные сегменты выбираются по одному за раз - но в результате «файлы» содержат несколько копий первого сегмента.
Это нормальное поведение с XPathNodeIterator? Или здесь чего-то не хватает? В настоящее время я использую .NET Framework 3.5.