从xml文件中获取值

时间:2011-08-17 10:11:29

标签: c# xml config

到目前为止我的代码:

public Form1()
{
   InitializeComponent();

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

以下是配置类:

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; }
   }

这是config.xml文件:

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

那么如何从xml文件中获取正确的数据呢?现在我总是得到“0”

感谢

2 个答案:

答案 0 :(得分:1)

使用:

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

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

实际上没有编译这段代码,但它应该适合你。

答案 1 :(得分:0)

这可能有效:

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