Почему XmlReader пропускает все остальные элементы, если нет разделителя пробелов?

Я вижу странное поведение, когда пытаюсь проанализировать XML с помощью класса LINQ XmlReader. Тестовый пример ниже: похоже, что я использую(XElement)XNode.ReadFrom(xmlReader) или один изRead() методы на XmlReader, он пропускает второйbar элементы во входном XML. Если пробел добавлен между</bar> а также<bar> потом будет разбирать второйbar элемент правильно.

Кто-нибудь имеет представление о том, почему входной поток запутался и как обойти эту проблему?

    [Test]
    [Explicit]
    public void ShouldParseCorrectNumberOfElements()
    {
        var xml = @"<foo><bar>wtf</bar><bar>wtf2</bar></foo>";
        XmlReader xmlReader = XmlReader.Create(new MemoryStream(Encoding.UTF8.GetBytes(xml)));

        int count = 0;
        xmlReader.MoveToContent();
        while (xmlReader.Read())
        {
            if (xmlReader.NodeType == XmlNodeType.Element && xmlReader.Name == "bar")
            {
                var element = xmlReader.ReadOuterXml();
                Console.WriteLine("just got an " + element);
                count++;
            }
        }
        Assert.AreEqual(2, count);
    }

Ответы на вопрос(2)

Ваш ответ на вопрос