读取XML文件,例如在C#中读取App.Config文件

时间:2019-10-17 16:40:55

标签: c# xml

在我的WPF项目中,我需要有一个与app.config文件类似的xml文件。因此,我在项目中添加了一个xml文件(Picture.xml),其内容如下所示:

  <?xml version="1.0" encoding="utf-8" ?>
  <Map>
     <add filenumber="1" value="1.png"/>
     <add filenumber="2" value="2.png"/>
     <add filenumber="3" value="3.png"/>
     <add filenumber="4" value="4.png"/>
 </Map>

我试图通过如下所示获取特定文件号的值。

 XDocument doc = XDocument.Load("Picture.xml");           
 var keys = doc.Descendants("add").Select(x => 
            x.Attribute("filenumber").Value);

但是它没有获得特定文件号的值。有没有办法像app.config中那样获取特定键的值。如果使用的是App.Config,则可以使用代码

来获取key的值
      ConfigurationManager.AppSetting["key"] 

类似的东西。

是否有任何类似的方法从Picture.xml文件中获取类似的值?

如果我提供4作为文件号(密钥),那么我应该得到“ 4.png”(值)。

1 个答案:

答案 0 :(得分:1)

尝试以下操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            Dictionary<int, string> dict = doc.Descendants("add")
                .GroupBy(x => (int)x.Attribute("filenumber"), y => (string)y.Attribute("value"))
                .ToDictionary(x => x.Key, y => y.FirstOrDefault());

        }
    }

}