Problem med att söka igenom en xml-fil, C#

Trädvy Permalänk
Medlem
Registrerad
Dec 2013

Problem med att söka igenom en xml-fil, C#

Hej!

Jag håller på att bygga en adressbok med C#, men lyckas inte söka på en person som finns lagrad i xml filen. Är det någon som kan hjälpa mig med att hitta felet i min kod?

Felmeddelandet jag får:

An unhandled exception of type 'System.NullReferenceException' occurred in Inlamning1.exe

Additional information: Objektreferensen har inte angetts till en instans av ett objekt.

Kod:

private void buttonSearch_Click(object sender, EventArgs e)
{
string path = @C:\Users\A\Documents\Visual Studio 2015\Projects\Inlamning1\Inlamning1;
XmlDocument doc = new XmlDocument();
doc.Load(path + "\\AdressBook\\settings.xml");
XmlElement elmRoot = doc.DocumentElement;
var id = TxtBoxSearch.Text;
string xPath = "//Person[@Name='" + id + "']";
XmlNode findnode = elmRoot.SelectSingleNode(xPath);

foreach (XmlElement node in findnode)
{
MessageBox.Show(node.InnerText);
}
}

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Nov 2009

private void buttonSearch_Click(object sender, EventArgs e) { string path = @C:\Users\A\Documents\Visual Studio 2015\Projects\Inlamning1\Inlamning1; XmlDocument doc = new XmlDocument(); doc.Load(path + "\\AdressBook\\settings.xml"); XmlElement elmRoot = doc.DocumentElement; var id = TxtBoxSearch.Text; string xPath = "//Person[@Name='" + id + "']"; //Hur vet du att det finns en person med det id? XmlNode findnode = elmRoot.SelectSingleNode(xPath); //Blir null om ingen nod hittats foreach (XmlElement node in findnode) //findnode kan vara null { MessageBox.Show(node.InnerText); } }

Nu vet jag inte exakt hur det fungerar i C#, men lade till lite kommentarer i koden.
1. ID som du matar in kan vara ett som inte finns i XML filen?
2. om ID inte finns, så kommer xPath inte att vara en korrekt path
3. SelectSingleNode(xPath) kommer att returnera null om ingen nod hittades
4. foreach(node in findnode)..{..} findnode kommer här att vara null, därav NullReferenceException?