Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
GitHub or Developer Community with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
Created attachment 206 [details]
Run the attached test program.
Under mono the following is printed:
Under MS .NET the following is printed:
It is a bug in .NET. XmlNodeList must be a *live* tree as in W3C DOM context.
When you remove *current* node from the node list, the *live* iteration is expected as what mono does. .NET fails to retrieve live nodes and returns nodes from the *dead* list.
We could probably fix this by caching the current node in the iterator so if the current node is replaced, like in this example, the iterator uses the original one to walk to the next node. That'd resolve this bug and still maintain the required behaviour. Is this possible to implement?
I don't think it is possible. If current node is replaced, how can this go forward? The link to the next node is already lost.