C#读取XML元素和文本

时间:2015-02-02 15:33:11

标签: c# xml linq

我仍然在掌握C#,而且我一直在寻找年龄来尝试找到解决问题的方法。 (这是一个帮助我学习C#的练习项目)

我能够创建并写入XML设置文件,但我很难从中获取数据。

我尝试使用here的最佳答案,但它没有用。

我想从XML文件中获取元素和内部文本,并进入2列圆柱列表(我目前正在使用字典,如果我有/需要,我会打开以更改此字段)

在第一列中,我喜欢元素名称,第二列是内部文本。

我只想写出我创建的列表

XML

<settings>
    <view1>enabled</view1>
    <view2>disabled</view2>
</settings>

C#

private Dictionary<string, string> settingsList = new Dictionary<string, string>();

private void CreateSettings()
{
    XDocument xmlSettings = new XDocument(
        new XElement(
            "settings",
            new XElement("view1", "enabled"),
            new XElement("view2", "disabled")))

    xmlSettings.Save(FilePath);
}

private void ReadSettings
{
    XDocument xmlSettings = XDocument.Load(FilePath);

    //READ XML FROM FILE PATH AND ADD TO LIST
}

2 个答案:

答案 0 :(得分:3)

您可以使用ToDictionary方法将设置放入字典中:

settingsList = xmlSettings.Descendants().ToDictionary(x => x.Name, x => x.Value);

答案 1 :(得分:2)

想象一下你有班级

public class Setting
{
    public String Name { get; set; }
    public String Value { get; set; }
}

然后,您必须执行以下操作才能返回类Setting

的实例列表
var settings = from node in xmlSettings.Descendants("settings").Descendants()
               select new Setting { Name = node.Name.LocalName, Value = node.Value };