I have an XML string that has no formatting similar to:
<SomeTag><Tag>tag 1</Tag><Tag>tag 2</Tag><Tag>tag 3</Tag><Tag>tag 4</Tag></SomeTag>
When I run this code:
using (XmlReader reader = XmlReader.Create(stream))
{
reader.MoveToContent();
while (reader.Read())
{
if ((reader.NodeType == XmlNodeType.Element) && (string.Compare(reader.Name, name, StringComparison.InvariantCultureIgnoreCase) == 0))
{
var element = (XElement)XNode.ReadFrom(reader);
yield return element;
}
}
reader.Close();
}
It only recognizes node's tag 1 and tag 3 as Element and recognizes tag 2 and tag 4 as TextNodes.
Why?
What do I do to fix it?
FYI, if I add formatting with line feeds after each tag it works as expected, recognizing all tags as elements. However, I do not have control over the XML that is given to me.