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

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

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

Необходимо считать с XML файла данные.
Листинг программы
  1. <file>
  2. <Plane number="1">
  3. <x>805</x>
  4. <y>745</y>
  5. <z>1</z>
  6. <x>806</x>
  7. <y>744</y>
  8. <z>1</z>
  9. <x>806</x>
  10. <y>743</y>
  11. <z>1</z>
  12. <x>806</x>
  13. <y>742</y>
  14. <z>1</z>
  15. <x>806</x>
  16. <y>741</y>
  17. <z>1</z>
  18. </Plane>
  19. <Plane number="2">
  20. <x>805</x>
  21. <y>745</y>
  22. <z>6</z>
  23. <x>806</x>
  24. <y>744</y>
  25. <z>6</z>
  26. <x>806</x>
  27. <y>743</y>
  28. <z>6</z>
  29. <x>806</x>
  30. <y>742</y>
  31. <z>6</z>
  32. <x>806</x>
  33. <y>741</y>
  34. <z>6</z>
  35. </Plane>
  36. </file>
Под каждой Plane идут координаты x,y,z нужно по очереди их записывать в переменные x,y,z. После окончания Plane переходить на следующий Plane и считывать далее. Я написал как просто ходить по тегу Plane и считывать первые три координаты, а как сделать так чтобы после каждого Plane считывались по очереди все координаты не знаю. Подскажите пожалуйста. Кстати координаты могут быть с плавающей точкой. Их может быть очень много может быть мало, и Plane тоже может быть разное количество.
Листинг программы
  1. XmlTextReader reader = new XmlTextReader(@"C:\\1111.xml");
  2. while (true)
  3. {
  4. reader.ReadToFollowing("Plane");
  5. reader.MoveToFirstAttribute();
  6. // while (reader.ReadToFollowing == "Plane") {
  7. reader.ReadToFollowing("x");
  8. reader.ReadElementContentAsString();
  9. reader.ReadToFollowing("y");
  10. reader.ReadElementContentAsString();
  11. reader.ReadToFollowing("z");
  12. reader.ReadElementContentAsString();
  13. //}
  14. }

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

textual
Листинг программы
  1. class Program
  2. {
  3.     public static void Main()
  4.     {
  5.         var xml = "C:\\1111.xml";
  6.         XmlSerializer serializer = new XmlSerializer(typeof(File));
  7.  
  8.         using (Stream reader = new FileStream(xml, FileMode.Open))
  9.         {
  10.             var result = serializer.Deserialize(reader) as File;
  11.         }
  12.  
  13.  
  14.         Console.ReadKey();
  15.     }
  16. }
  17.  
  18. [XmlRoot(ElementName = "Plane")]
  19. public class Plane
  20. {
  21.     [XmlElement(ElementName = "x")]
  22.     public List<string> X { get; set; }
  23.     [XmlElement(ElementName = "y")]
  24.     public List<string> Y { get; set; }
  25.     [XmlElement(ElementName = "z")]
  26.     public List<string> Z { get; set; }
  27.     [XmlAttribute(AttributeName = "number")]
  28.     public string Number { get; set; }
  29. }
  30.  
  31. [XmlRoot(ElementName = "file")]
  32. public class File
  33. {
  34.     [XmlElement(ElementName = "Plane")]
  35.     public List<Plane> Planes { get; set; }
  36. }

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


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

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

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

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

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

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