У меня есть строка XML, форматирование которой не похоже на:
<SomeTag><Tag>tag 1</Tag><Tag>tag 2</Tag><Tag>tag 3</Tag><Tag>tag 4</Tag></SomeTag>
Когда я запускаю этот код:
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();
}
Он распознает только тег 1 узла и тег 3 как элемент, а тег 2 и тег 4 - как текстовые узлы.
Почему?
Что мне сделать, чтобы это исправить?
К вашему сведению, если я добавлю форматирование с переводами строк после каждого тега, он будет работать, как и ожидалось, распознавая все теги как элементы. Однако у меня нет контроля над XML, который мне дан.