XML-Node Value auslesen

09/12/2007 - 21:33 von M | Report spam
Tag zusammen,

und zwar hab ich folgendes Problem. Ich hab ne XML-Datei und will den Wert
eines Knotens auslesen. So weit, so gut. Das habe ich schon hinbekommen:

nodes.Item(i - 1).InnerText


nodes ist in dem Fall ein Feld vom Typ XmlNodeList.

So mein Problem ist hierbei aber dieses "InnerText". Das gibt mir nàmlich
nicht nur den Wert des Knotens, den ich will, sondern auch alle Werte der
Child-Knoten meines Knotens. Beispiel:

<Knoten1>
Wert1
<Knoten2>Wert2</Knoten2>
<Knoten3>Wert3</Knoten3>
<Knoten1>


So, wenn ich also nur den Wert1 von Knoten1 haben will, bekomme ich mit
"InnerText" auch die Werte von den anderen Knoten, die ich eigentlich gar
nicht will. Meine Frage daher: Wie kann ich das machen?

Ich habs schon mit

nodes.Item(i - 1).Value

probiert, aber da bekomme ich gar nichts zurück.

Danke schonmal im Voraus für jede Hilfe!
 

Lesen sie die antworten

#1 Kerem Gümrükcü
10/12/2007 - 05:47 | Warnen spam
Hallo Matt,

<Knoten1>
Wert1
<Knoten2>Wert2</Knoten2>
<Knoten3>Wert3</Knoten3>
<Knoten1>



Das ist KEIN gültiges XML und Du wirst von daher
auch mit dem Parsen der Daten Probleme bekommen.
Du musst am Ende "</Knoten1>" schliessen, sonst wirst
Du immer Probleme mit dem Lesen der Daten haben.
Was Du willst geht so:

XmlDocument xmld = new XmlDocument();
xmld.Load(PfadZurXmlDatei);
MessageBox.Show(xmld.GetElementsByTagName("Knoten1")[0].FirstChild.Value);

oder mit XPath:

MessageBox.Show(xmld.SelectSingleNode("/Knoten1").FirstChild.Value);

Es gibt viele Wege, aber korrigere und überprüfe deine Dateien immer
erst auf korrektes XML,...sonst wir Dir der beste Parser nicht helfen,...

Grüße

Kerem


Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Microsoft Live Space: http://kerem-g.spaces.live.com/
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen