Xml Datei lesen und in Hashtable speichern

liam

Mitglied
Hi,

ich will hier die Field und Type eigenschaft in ein Hashtable einlesen das wiederum zu als Value einer anderen fungiert.
nur sobald ein neues hinzugefügt wird haben alle anderen auch den Wert,
z.B. Hat das erste ein Wert nach den EInfügen von 5 Values und nach dem nächsten haben beide nur 2 Values.
Warum das?
Code:
protected void loadtables()
{
if (bwrite==true)
{
writeit("Lade Tabellenstruktur...");
}
FileStream xmlstream=null;
Hashtable arrtemp = new Hashtable();
ArrayList arrfield = new ArrayList();
ArrayList arrtype = new ArrayList();
int i=1;
int v=0;
try
{
xmlstream = new FileStream(strpath+@"dbschema.xml",FileMode.Open,FileAccess.Read);
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(xmlstream);
XmlNodeList nodes = xmldoc.SelectNodes(".//Name");
foreach (XmlNode node in nodes)
{
XmlNodeList nodefield = xmldoc.SelectNodes(
"/"+strwhat+"/Tabelle["+i+"]/"+node.InnerText.ToString()+"/field/@name");
XmlNodeList nodetype = xmldoc.SelectNodes(
"/"+strwhat+"/Tabelle["+i+"]/"+node.InnerText.ToString()+"/field/@type");
foreach (XmlNode n in nodefield)
{
arrfield.Add(n.InnerText.ToString());
}
foreach (XmlNode n in nodetype)
{
arrtype.Add(n.InnerText.ToString());
}
foreach (string s in arrfield)
{
arrtemp.Add(s,arrtype[v].ToString());
v++;
}
arrtables.Add(node.InnerText.ToString(),arrtemp);//dieses Hashtable "verliert" dann die alten werte
i++;
v=0;
arrtemp.Clear();
arrtype.Clear();
arrfield.Clear();
}
nodes=null;
if (bwrite==true)
{
writeit("Tabellenstruktur laden abgeschlossen");
}
}
catch (Exception ex)
{
arrtemp=null;	
throw new Exception(ex.Message.ToString());
}
finally
{
xmlstream.Close();
}
 
Zurück