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

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

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

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

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

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using System.Xml.XPath;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var xml = @"
<Messages>
 
  <Message msgType='from'>
    <usrSecond>Example</usrSecond>
    <date>17.05.2015 5:42:14</date>
    <message>test message</message>
  </Message>
 
  <Message msgType='to'>
    <usrSecond>Example</usrSecond>
    <date>17.05.2015 6:43:14</date>
    <message>TEST</message>
  </Message>
</Messages>
";
            var xdoc = XDocument.Parse(xml);
            var n = 1; // Задаем количество пропущенных узлов.
            var resul = xdoc.XPathSelectElements("//Messages/Message[count(preceding::Message[name(..) = 'Messages']) >= " + n.ToString() + "]");
 
            foreach (XElement xe in resul) Console.WriteLine(xe.ToString());
 
            Console.WriteLine("Ready");
            Console.ReadKey();
 
 
        }
    }
}

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


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

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

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