XML gegevens aan bestaande file toevoegen

Status
Niet open voor verdere reacties.

dannyvk100

Gebruiker
Lid geworden
7 feb 2012
Berichten
19
Geachte dames en heren,

hoe kan ik gegevens aan mijn bestaand xml file toevoegen?
Dit is mijn methode:

public void ProcessLogXML(string table, string actie, string statement, string id)
{
XmlTextWriter writer = new XmlTextWriter("C:\\Project/HVL/SSPS/SSPS/bin/Debug/Log/LogFile.xml", null);

writer.WriteStartElement("LogXML");

writer.WriteElementString("DATE", DateTime.Now.ToString("dd-MM-yyyy"));
writer.WriteElementString("TIME", DateTime.Now.ToString("HH:mm:ss"));
writer.WriteElementString("SWVERSION", ApplicationInfo.Version.ToString());
writer.WriteElementString("PC", Environment.MachineName);
writer.WriteElementString("USER", ProgramSession.Instance.CurrentUser.ToString());
writer.WriteElementString("TABLE", table);
writer.WriteElementString("INSERT", "INSERT");
writer.WriteElementString("STATEMENT", "STATEMENT");
writer.WriteElementString("ID", "10" );

writer.WriteEndElement();
writer.Close();
}

even controleren of er iets in zit waarschijnlijk en vervolgens of aanmaken of toevoegen in bestaande file.

Alvast bedankt hiervoor:D
 
Je kan het xml bestandje eerst lezen dan kijken welke ontbreken en/of leeg zijn. en dan toevoegen.
 
Hoi MatthiWare,

kun je mij een voorbeeld geven hoe ik eerst moet controleren of er al iets in de file staat? Zo niet dan onderaan de file gegevens toevoegen? Ben nog niet zo heel bekend met gegevens weg schrijven in xml files.
 
Gewoon manual controleren wat er ontbreekt. Er is helaas geen makkelijkere manier..
 
Dit is een voorbeeld waarin de content van de element null of empty is als het element er niet is dan werkt het niet :\
Maar het is een begin je kan de code aanpassen enzo tot het werkt,

Code:
public void ProcessLogXML(string table, string actie, string statement, string id)
        {
            List<String[]> itemlist = new List<String[]>();

            try
            {
                XmlTextReader te = new XmlTextReader(@"C:\Users\AdminMatthi\Desktop\Read.xml");
                XmlNodeType t;
                while (te.Read())
                {
                    t = te.NodeType;
                    if (t == XmlNodeType.Element)
                    {
                        if (te.Name == "DATE")
                        {
                            String[] item = new String[1];
                            item[0] = "DATE";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "TIME")
                        {
                            String[] item = new String[1];
                            item[0] = "TIME";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "SWVERSION")
                        {
                            String[] item = new String[1];
                            item[0] = "SWVERSION";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "PC")
                        {
                            String[] item = new String[1];
                            item[0] = "PC";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "USER")
                        {
                            String[] item = new String[1];
                            item[0] = "USER";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "TABLE")
                        {
                            String[] item = new String[1];
                            item[0] = "TABLE";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "INSERT")
                        {
                            String[] item = new String[1];
                            item[0] = "INSERT";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "STATEMENT")
                        {
                            String[] item = new String[1];
                            item[0] = "STATEMENT";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }
                        if (te.Name == "ID")
                        {
                            String[] item = new String[1];
                            item[0] = "ID";
                            item[1] = te.ReadElementContentAsString();
                            itemlist.Add(item);
                        }

                    }
                }
                te.Close();
            }
            catch (XmlException e)
            {
                throw new XmlException("Xml-bestand is niet geldig:", e.InnerException, e.LineNumber, e.LinePosition);
            }

            XmlTextWriter writer = new XmlTextWriter(@"C:\Users\AdminMatthi\Desktop\Write.xml", Encoding.UTF8);

            writer.Formatting = Formatting.Indented;

            writer.WriteStartDocument();
            writer.WriteStartElement("LogXML");

            foreach (String[] itm in itemlist)
            {
                if (String.IsNullOrEmpty(itm[1]))
                {
                    //Als de tekst niets is of null.. maken we hem zelf hé :)
                    switch (itm[0])
                    {
                        case "DATE":
                            writer.WriteElementString(itm[0], DateTime.Now.ToString("dd-MM-yyyy"));
                            break;

                        case "TIME":
                            writer.WriteElementString(itm[0], DateTime.Now.ToString("HH:mm:ss"));
                            break;

                        case "SWVERSION":
                            writer.WriteElementString(itm[0], "Version");
                            //writer.WriteElementString(itm[0], ApplicationInfo.Version.ToString());
                            break;

                        case "PC":
                            writer.WriteElementString(itm[0], Environment.MachineName);
                            break;

                        case "USER":
                            //writer.WriteElementString(itm[0], ProgramSession.Instance.CurrentUser.ToString());
                            writer.WriteElementString(itm[0], "CurrUser");
                            break;

                        case "TABLE":
                            writer.WriteElementString(itm[0], table);
                            break;

                        case "INSERT":
                            writer.WriteElementString(itm[0], "INSERT");
                            break;

                        case "STATEMENT":
                            writer.WriteElementString(itm[0], "STATEMENT");
                            break;

                        case "ID":
                            writer.WriteElementString(itm[0], "10");
                            break;
                    }

                }
                else
                {
                    writer.WriteElementString(itm[0], itm[1]);
                }
            }

            writer.WriteEndElement();
            writer.WriteEndDocument();
            writer.Close();
        }

Veel succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan