Я использую класс чтения 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 Сотрудники20
Компания Google Сотрудники20000
Компания Simons Gremlin Web Design Сотрудники1
с xml вот так
‹?xml version=1.0 encoding=UTF-8?›
‹компании›
‹company›Web Spiders Co‹/company›
‹employees›20‹/employees›
‹company›Google ‹/company›
‹employees›20000‹/employees›
‹company›Simons Gremlin Web Design‹/company›
‹employees›1‹/employees›
‹/companies›
однако, когда я удаляю разрывы строк из XML
т.е. ‹?xml version=1.0 encoding=UTF-8?› ‹companies› ‹company›Web Spiders Co‹/company› ‹employees›20‹/employees› ‹company›Google‹/company› ‹employees›20000‹/employees › ‹компания›Simons Gremlin Web Design‹/компания› ‹сотрудники›1‹/сотрудники› ‹/компании›
затем xmlreader начинает пропускать элементы, и мой набор результатов выглядит совсем по-другому.
e.g.
Компания Web Spiders Co Сотрудники20000
Я не очень понимаю, почему это происходит и почему XML-ридер ведет себя таким образом.