Ich habe versucht, XML in C# Visual Studio zu lesen, aber wusste nicht, wie es sehr gut geht. Zuerst habe ich versucht, einen Block, wenn, wie folgt aus:Wie lese ich eine XML-Datei (einfach)
if (ReadToNextDescendant("painted_blue"))
{
// access the coordinates inside and do some work
// this works
}
Es funktionierte, und ich war in der Lage, die Daten aus den gemalten blauen Koordinaten zu extrahieren. Ich habe es jedoch erneut für die walls_horizontal versucht und es hat nicht funktioniert. Daher kam ich zu dem Schluss, dass ich eine neue Funktion oder vielleicht einen anderen Ansatz brauche. Ich bin jedoch nicht im XML-Parsing versiert. Zum einen verstehe ich nicht genau, was ReadToDescendant tut und warum es beim zweiten Mal nicht funktioniert hat. Könnte mir jemand in die richtige Richtung zeigen?
<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>
Es sieht aus wie 'ReadToNextDescendant' ist eine Methode in Ihrer eigenen Klasse, vorausgesetzt, Sie rufen es nicht auf irgendetwas. Es würde wirklich helfen, wenn du ein [mcve] zur Verfügung stellen würdest. Aber im Allgemeinen würde ich vorschlagen, LINQ zu XML zu verwenden, wenn Sie mit XML arbeiten. Die aktuelle Struktur Ihres XML ist jedoch sehr unglücklich - es sieht so aus, als ob jedes dieser Elemente 5 Unterelemente haben sollte. –
Suchen Sie die XElement-Klasse. Es ist sehr nützlich für diese Art von Dingen und ist Teil von dem, auf den Jon Skeet Bezug nimmt, wenn er von LINQ zu XML spricht. Sie sollten auch, wie Jon Skeet sagt, Ihr XML so korrigieren, dass diese Koordinaten Unterelemente mit möglicherweise x- und y-Attributen sind. – Jakotheshadows
Bemerkenswert und hinzufügen: Ihr XML ist nicht gültig XML. –