Считывание данных с XML файла - C#

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

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

Необходимо считать с XML файла данные.
<file>
<Plane number="1">
  <x>805</x>
  <y>745</y>
  <z>1</z>
  <x>806</x>
  <y>744</y>
  <z>1</z>
  <x>806</x>
  <y>743</y>
  <z>1</z>
  <x>806</x>
  <y>742</y>
  <z>1</z>
  <x>806</x>
  <y>741</y>
  <z>1</z>
</Plane>
<Plane number="2">
  <x>805</x>
  <y>745</y>
  <z>6</z>
  <x>806</x>
  <y>744</y>
  <z>6</z>
  <x>806</x>
  <y>743</y>
  <z>6</z>
  <x>806</x>
  <y>742</y>
  <z>6</z>
  <x>806</x>
  <y>741</y>
  <z>6</z>
</Plane>
</file>
Под каждой Plane идут координаты x,y,z нужно по очереди их записывать в переменные x,y,z. После окончания Plane переходить на следующий Plane и считывать далее. Я написал как просто ходить по тегу Plane и считывать первые три координаты, а как сделать так чтобы после каждого Plane считывались по очереди все координаты не знаю. Подскажите пожалуйста. Кстати координаты могут быть с плавающей точкой. Их может быть очень много может быть мало, и Plane тоже может быть разное количество.
XmlTextReader reader = new XmlTextReader(@"C:\\1111.xml");
 
            while (true)
            {
                reader.ReadToFollowing("Plane");
                reader.MoveToFirstAttribute();
               
                // while (reader.ReadToFollowing == "Plane") { 
                reader.ReadToFollowing("x");
                reader.ReadElementContentAsString();
                reader.ReadToFollowing("y");
                reader.ReadElementContentAsString();
                reader.ReadToFollowing("z");
                reader.ReadElementContentAsString();
                //}
            }

Решение задачи: «Считывание данных с XML файла»

textual
Листинг программы
class Program
{
    public static void Main()
    {
        var xml = "C:\\1111.xml";
        XmlSerializer serializer = new XmlSerializer(typeof(File));
 
        using (Stream reader = new FileStream(xml, FileMode.Open))
        {
            var result = serializer.Deserialize(reader) as File;
        }
 
 
        Console.ReadKey();
    }
}
 
[XmlRoot(ElementName = "Plane")]
public class Plane
{
    [XmlElement(ElementName = "x")]
    public List<string> X { get; set; }
    [XmlElement(ElementName = "y")]
    public List<string> Y { get; set; }
    [XmlElement(ElementName = "z")]
    public List<string> Z { get; set; }
    [XmlAttribute(AttributeName = "number")]
    public string Number { get; set; }
}
 
[XmlRoot(ElementName = "file")]
public class File
{
    [XmlElement(ElementName = "Plane")]
    public List<Plane> Planes { get; set; }
}

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


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

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

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