Fixed incorrect logic in XmlReader's example (#43799) #44054
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
(#43799 is now 3 weeks old without even being triaged, so fixing it myself)
The code sample for XmlReader is incorrect. It relies on the fact that the input XML has some formatting in it. Without formatting the code returns wrong results.
In more details, the issue happens because
XElement.ReadFrom()
reads the current element and positions the reader at the next element. When the XML has formatting, that next element will be of typeWhitespace
or smth - and everything works. But without formatting that next element will be the nextChild
element. Then thereader.Read()
happens, which moves the reader to yet another next element. Hence the<Child Key=""02"">
tag simply gets skipped.Here is the code to address the issue.
Internal previews