Ja, das bringt nichts
Um ein Xml in Baustruktur (DOM) einzulesen benötigst du die von mir erwähnte Klasse XDocument, ehemals XmlDocument.
C#-Quelltext
1:
| XDocument xmlDoc = XDocument.Load("path.xml"); |
Wie bereits erwähnt, kannst du die Navigation über xmlDoc.Root.Element("name").Element("subname") machen. Dies ist vor Allem bei komplexeren Xml-Strukturen sehr umständlich. Um an gewisse Element innerhalb eines Xml-Dokument zu kommen gibt es
XPath.
Für XDocument bzw. XElement musst du dein Namespace System.Xml.XPath einbinden (using System.Xml.XPath;). Danach stehen dir vier erweitere Methoden zur Verfügung (CreateNavigator, XPathEvaluate, XPatSelectElement, XPathSelectElements). Dich interessiert in diesem Fall XPathSelectElement, welches du direkt auf das XDocument anwenden kannst.
C#-Quelltext
1:
| xmlDoc.XPathSelectElement("xpath-ausdruck"); |
Das zurückgelieferte Element kann nun bearbeitet werden.
In deinem Fall könnte der XPath-Ausdruck so aussehen:
C#-Quelltext
1: 2: 3:
| XElement ersteOption = xmlDoc.XPathSelectElement("/profile/options/option[position()=1]");
XElement useHpOption = xmlDoc.XPathSelectElement("/profile/options/option[@name='USE_HP_POTION']"); |
Um nun einen Attributwert eines Knoten zu erhalten/zu bearbeiten muss du das Property Attribute verwenden:
C#-Quelltext
1:
| string value = ersteOption.Attribute("value").Value; |
Das setzen erfolgt analog:
C#-Quelltext
1:
| ersteOption.Attribute("value").Value = "77"; |
Ich hoffe das hilft dir weiter,
Gruß