Считывание данных с XML файла - C#
Формулировка задачи:
Необходимо считать с XML файла данные.
Под каждой Plane идут координаты x,y,z нужно по очереди их записывать в переменные x,y,z. После окончания Plane переходить на следующий Plane и считывать далее.
Я написал как просто ходить по тегу Plane и считывать первые три координаты, а как сделать так чтобы после каждого Plane считывались по очереди все координаты не знаю. Подскажите пожалуйста. Кстати координаты могут быть с плавающей точкой. Их может быть очень много может быть мало, и Plane тоже может быть разное количество.
Листинг программы
- <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>
Листинг программы
- 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; }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д