[C#] Element aus einer XMLNode lesen

TsEnG

Mitglied
Hallo,

ich habe folgendes "Problem" ich habe eine XMLNode, die folgendermaßen strukturiert ist wenn ich sie ausgebe:

<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<Result ID="1,New">
<ErrorCode>0x00000000</ErrorCode>
<ID />
...........
</Result>
</Results>

Nun möchte ich den INHALT des Elementes "ErrorCode" auslesen, sodass ich diesen mit einer IF Abfrage prüfen kann. Ich benötige als in diesem Beispiel die 0x00000000

Das ganze ist in einer XMLNode namens ndReturn enthalten. Mit welcher Funktion bekomme ich nun diesen Inhalt aus der XMLNode herraus?

Wenn ich es richtig verstehe ist <ErrorCode></ErrorCode> doch ein Element? Gibt es da eine spezielle funktion zu?


Danke
 
Dankeschön, habe nunmal aus den Beispielen was herrausgesucht und folgendes erstellt:

Code:
                XmlNodeReader rError = new XmlNodeReader(ndReturn);
                while (rError.ReadToFollowing("ErrorCode"))
                {
                    Console.WriteLine(rError.ReadString()); // TEST AUSGABE
                    if (rError.ReadString() == "0x00000000")
                    {
                        Console.WriteLine("Hallo Welt");
                    }
                }

Nun kann ich den Inhalt von ErrorCode über rError.ReadString(); auslesen was auch super funktioniert. Nur greift die IF Bedingung leider nicht, ich weiß leider nicht warum, da ich den Inhalt von ErrorCode mit dem gewünschten String "0x00000000" vergleiche. Ich vergleich dort ja auch zwei Strings und frage mich warum er nicht in die IF Abfrage geht und Hallo Welt ausgibt?
 
Versuch mal beim ersten Aufruf von ReadString() den zurückgegebenen Wert in einem String zwischen zuspeichern und dann den Vergleich in der If-Abfrage mit dieser Variable zu machen.

Ich könne mir nämlich vorstellen, dass nach dem ersten mal auslesen, der Reader diesen Wert nicht mehr hat bzw. irgendwie weiter gegangen ist oder so....
 
man sollte Strings eigentlich immer mit der methode .Equals("text") vergleichen....
if (rError.ReadString().Equals("0x00000000"))


sollte z.B. in der Node selber " 0x00000000 " drinstehn das ein leerzeichen vorne/hinten ist würde die if mit == "0x00000000" nie true sein weil " 0x00000000 " != "0x00000000" allein von der länge schon nicht... wenn man wissen will ob ein string in einem vorkommt sollte man .Contains("text") aufrufen das liefert true zurück sobald der gesuchte text im string vorkommt ansonten false :)
 
Zuletzt bearbeitet:
Zurück