Bedre opslag i XML gennem DataSet
Jeg har en XML-fil med følgende indhold:<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<user username="test1" password="hejsa1"/>
<user username="test2" password="hejsa2"/>
<user username="test3" password="hejsa3"/>
<user username="test4" password="hejsa4"/>
<user username="test5" password="hejsa5"/>
</root>
Jeg vil gerne slå et username op, og få det tilhørende password. Det gør jeg med følgende metode, som virker!
DataSet ds = new DataSet();
ds = FileHandler.LoadXml("test.xml");
IEnumerator tableEnum = ds.Tables.GetEnumerator();
while (tableEnum.MoveNext()) {
DataTable dt = (DataTable)tableEnum.Current;
if (dt.TableName == "user") {
DataColumn[] dcArray = new DataColumn[1];
DataColumn dc = dt.Columns["username"];
dcArray[0] = dc;
dt.PrimaryKey = dcArray;
ds.AcceptChanges();
DataRow dr = dt.Rows.Find(to);
if (dr == null) {
return "Ingen fundet";
}
else {
return dr["password"].ToString();
}
}
}
Det kan bare ikke passe, det skal være så besværligt, at gøre noget der er så simpelt - specielt når hele .NET er bygget til at håndtere XML. Så jeg vil gerne høre om der er nogen der har en nemmere måde at gøre det på.
