Get Values out of xml file

Tags: c# xml config
By : h0ppel
Source: Stackoverflow.com
Question!

Here my code until now:

public Form1()
{
   InitializeComponent();

   Configuration cfg = Configuration.Deserialize("config.xml");
   textBox1.Text = cfg.warning.ToString();
}

Here's the class for the configuration:

public class Configuration
{
    int _warning;
    int _alert;

   public Configuration()
   {
     //   _warning = 50;
     //   _alert = 100;
   }

   public static void Serialize(string file, Configuration c)
   {
       XmlSerializer xs = new XmlSerializer(c.GetType());
       StreamWriter writer = File.CreateText(file);
       xs.Serialize(writer, c);
       writer.Flush();
       writer.Close();
   }

   public static Configuration Deserialize(string file)
   {
       XmlSerializer xs = new XmlSerializer(typeof(Configuration));
       StreamReader reader = File.OpenText(file);
       Configuration cfg = (Configuration)xs.Deserialize(reader);
       reader.Close();
       return cfg;
   }

   public int warning
   {
       get { return _warning; }
       set { _warning = value; }
   }

   public int alert
   {
        get { return _alert; }
        set { _alert = value; }
   }

And here's the config.xml file:

<Sensors>
  <ID1>
    <warning>70</warning>
    <alert>100</alert>
  </ID1>
  <ID2>
    <warning>80</warning>
    <alert>110</alert>
  </ID2>
</Sensors>

So how can I get the correct data out of the xml file? Now I always get "0"

thanks

By : h0ppel


Answers

This might work:

var xdoc = XDocument.Load(pathToFile);
var warningValue = xdoc.Element("warning").Value;
By : Abbas


Use:

 System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
 xmlDoc.Load(filename);

 string sWarningValue = xmlDoc["Sensors"]["ID1"]["warning"].Value;

Didn't compile this code actually, but it should work for you.

By : Tigran


This video can help you solving your question :)
By: admin