Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Store data without using Database and how to retrieve them?

Tags:

c#

.net

winforms

I am parsing the html file to extract tabular information through column names. And I want like let user give the input for column name. And according to that column names tabular information will be extracted.

Now that column names which user will input,based on that column names I want to find the tabular information from the html file.

But where I should store this column names input by user ? And how to retrieve them ? I dont want to use database.

EDIT : How can we store data in xml file and how can we retrieve data from it and how can we update the xml file for storing data ? Like I have 3 column names Name, Address,Phone no and for that user will input possible column names like Nm,Add,PhNo. and Nam,Addre,PhoNo and so on.

like image 479
Harikrishna Avatar asked Apr 09 '10 11:04

Harikrishna


1 Answers

Lots of people have been talking about XML, it's a good idea. However, if Linq is available for you, you shoudl really consider using Linq to XML instead of SAX/DOM parsing.

Linq to XML makes it easier to parse, create and edit XML file compared to SAX and DOM parser. Using SAX/DOM parsing usually requires a lot of loops to get to the correct element or to navigate trough the nodes.

Example taken from MSDN :
Using DOM Parsing :

XmlDocument doc = new XmlDocument();
XmlElement name = doc.CreateElement("Name");
name.InnerText = "Patrick Hines";
XmlElement phone1 = doc.CreateElement("Phone");
phone1.SetAttribute("Type", "Home");
phone1.InnerText = "206-555-0144";        
XmlElement phone2 = doc.CreateElement("Phone");
phone2.SetAttribute("Type", "Work");
phone2.InnerText = "425-555-0145";        
XmlElement street1 = doc.CreateElement("Street1");        
street1.InnerText = "123 Main St";
XmlElement city = doc.CreateElement("City");
city.InnerText = "Mercer Island";
XmlElement state = doc.CreateElement("State");
state.InnerText = "WA";
XmlElement postal = doc.CreateElement("Postal");
postal.InnerText = "68042";
XmlElement address = doc.CreateElement("Address");
address.AppendChild(street1);
address.AppendChild(city);
address.AppendChild(state);
address.AppendChild(postal);
XmlElement contact = doc.CreateElement("Contact");
contact.AppendChild(name);
contact.AppendChild(phone1);
contact.AppendChild(phone2);
contact.AppendChild(address);
XmlElement contacts = doc.CreateElement("Contacts");
contacts.AppendChild(contact);
doc.AppendChild(contacts);

Using Linq to XML :

XElement contacts =
    new XElement("Contacts",
        new XElement("Contact",
            new XElement("Name", "Patrick Hines"),
            new XElement("Phone", "206-555-0144", 
                new XAttribute("Type", "Home")),
            new XElement("phone", "425-555-0145",
                new XAttribute("Type", "Work")),
            new XElement("Address",
                new XElement("Street1", "123 Main St"),
                new XElement("City", "Mercer Island"),
                new XElement("State", "WA"),
                new XElement("Postal", "68042")
            )
        )
    );

Easier to do and much more clear.

Edit:
Save the XML tree to contacts.xml :

// using the code above
contact.Save("contacts.xml");

Load the contacts.xml file :

//using the code above
XDocument contactDoc = XDocument.Load("contacts.xml"); 

To update an element of the tree there is a few functions in the doc that can do it depending on what you want to do

like image 153
ALOToverflow Avatar answered Nov 15 '22 05:11

ALOToverflow