Считывание данных с 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д