Частичное чтение XML-файла - C#

Узнай цену своей работы

Формулировка задачи:

Собственно, вопрос по реализации. Как лучше это сделать? Посчитать все узлы и пропустить все -n узлов, а оставшиеся считать? Больше идей нет. Примерам с кодом буду благодарен. Сам файл имеет следующую структуру:
Листинг программы
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Messages>
  3. <Message msgType="from">
  4. <usrSecond>Example</usrSecond>
  5. <date>17.05.2015 5:42:14</date>
  6. <message>test message</message>
  7. </Message>
  8. <Message msgType="to">
  9. <usrSecond>Example</usrSecond>
  10. <date>17.05.2015 6:43:14</date>
  11. <message>TEST</message>
  12. </Message>
  13. </Messages>

Решение задачи: «Частичное чтение XML-файла»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml.Linq;
  6. using System.Xml.XPath;
  7. namespace ConsoleApplication1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             var xml = @"
  14. <Messages>
  15.  
  16.  <Message msgType='from'>
  17.    <usrSecond>Example</usrSecond>
  18.    <date>17.05.2015 5:42:14</date>
  19.    <message>test message</message>
  20.  </Message>
  21.  
  22.  <Message msgType='to'>
  23.    <usrSecond>Example</usrSecond>
  24.    <date>17.05.2015 6:43:14</date>
  25.    <message>TEST</message>
  26.  </Message>
  27. </Messages>
  28. ";
  29.             var xdoc = XDocument.Parse(xml);
  30.             var n = 1; // Задаем количество пропущенных узлов.
  31.             var resul = xdoc.XPathSelectElements("//Messages/Message[count(preceding::Message[name(..) = 'Messages']) >= " + n.ToString() + "]");
  32.  
  33.             foreach (XElement xe in resul) Console.WriteLine(xe.ToString());
  34.  
  35.             Console.WriteLine("Ready");
  36.             Console.ReadKey();
  37.  
  38.  
  39.         }
  40.     }
  41. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут