Я пытался читать xml в Visual Studio C#, но не знал, как сделать это очень хорошо. Во-первых, я попробовал, если блок, как это:Как читать xml-файл (легко)
if (ReadToNextDescendant("painted_blue"))
{
// access the coordinates inside and do some work
// this works
}
Он работал, и я был в состоянии извлечь данные из нарисованных синих координат. Тем не менее, я попробовал это снова для wall_horizontal, и это не сработало. Таким образом, я пришел к выводу, что мне нужна какая-то новая функция или, возможно, другой подход. Тем не менее, я не разбираюсь в разборе XML. Во-первых, я не понимаю, что делает ReadToDescendant и почему он не работает во второй раз. Может ли кто-нибудь указать мне в правильном направлении?
<painted_blue>
(0,0)
(1,0)
(1,5)
(2,2)
</painted_blue>
<walls_horizontal>
(1,2)
(1,3)
(1,4)
(2,1)
(2,2)
</walls_horizontal>
<walls_vertical>
(1,1)
(1,2)
(1,3)
(2,0)
(2,1)
</walls_vertical>
Похоже, что «ReadToNextDescendant» - это метод в вашем собственном классе, учитывая, что вы его не называете. Это действительно поможет, если вы предоставите [mcve]. Но в целом я бы предложил использовать LINQ to XML при работе с XML. Нынешняя структура вашего XML действительно неудачна, хотя, похоже, каждый из этих элементов должен иметь 5 подэлементов. –
Посмотрите класс XElement. Это очень полезно для такого рода вещей и является частью того, о чем говорит Джон Скит, когда он говорит о LINQ to XML. Вы также должны учитывать, как говорит Джон Скит, исправление вашего XML, чтобы эти координаты были подэлементами, возможно, с атрибутами x и y. – Jakotheshadows
Стоит отметить, добавив: ваш XML недействителен XML. –