Я использую класс чтения XML, и я сделал следующий пример.
XmlReader xmlreader = XmlReader.Create("http://adomain/companies.xml");
while (xmlreader.ReadToFollowing("company"))
{
Console.WriteLine("Company {0}",xmlreader.ReadElementContentAsString());
if (xmlreader.ReadToFollowing("employees"))
{
Console.WriteLine("Employees{0}", xmlreader.ReadElementContentAsString());
}
Console.WriteLine();
}
Код работает нормально, когда XML имеет каретку, возвращает результаты, подобные следующим
Компания Web Spiders Co
Employees20
Компания Google
Employees20000
Компания Саймонс Гремлин Веб Дизайн
Employees1
с xml вот так
<? Xml version = "1.0" encoding = "UTF-8"?>
Web Spiders Co
20
Google
20000
Саймонс Гремлин Веб-дизайн
1
однако, когда я удаляю разрывы строк из XML
т.е.
<? xml version = "1.0" encoding = "UTF-8"?>
Web Spiders Co
20
Google
20000
Simons Gremlin Веб-дизайн
1
затем xmlreader начинает пропускать элементы, и мой набор результатов выглядит совсем иначе
* * +1058 например,
Компания Web Spiders Co
Employees20000
Я не очень понимаю, почему это происходит, и почему программа чтения XML ведет себя так.