如何使用C#从XML文件加载属性

时间:2016-02-21 17:52:24

标签: c# xml

我有一个创建XML文件的方法

Counter(itertools.imap(itemgetter("name") ,a))

输出:

    public void saveXmlButtons()
    {

        XElement buttons = new XElement("Buttons"); // Create a root node
        for (int i = 0; i < 7; i++)
        {
            XElement id = new XElement("Button", listButtons[i].id.ToString());
            XElement type = new XElement("appType", listButtons[i].type);
            XElement isActive = new XElement("isActive", listButtons[i].isActive);
            XElement name = new XElement("name", listButtons[i].lblName.Content);
            XElement pathIcon = new XElement("pathIcon", listButtons[i].pathIcon);
            XElement pathApp = new XElement("pathApp", listButtons[i].pathApp);
            XElement button = new XElement("Button");
            button.Add(id);
            button.Add(type);
            button.Add(isActive);
            button.Add(name);
            button.Add(pathIcon);
            button.Add(pathApp);
            buttons.Add(button);
        }
        buttons.Save(@"btemp");
        loadXmlButton();

    }

我试图读取每个节点的不同属性(Button,appType,isActile),文档对我没有帮助.. 加载每个属性的最佳方法是什么?这段代码不起作用..

<?xml version="1.0" encoding="utf-8"?>
<Buttons>
  <Button>
    <Button>0</Button>
    <appType>None</appType>
    <isActive>false</isActive>
    <name />
    <pathIcon>Resources/add.png</pathIcon>
    <pathApp />
  </Button>
  <Button>
    <Button>1</Button>
    <appType>None</appType>
    <isActive>false</isActive>
    <name />
    <pathIcon>Resources/add.png</pathIcon>
    <pathApp />
  </Button>
etc...
</Buttons>

1 个答案:

答案 0 :(得分:2)

正如所建议的那样,使用相同的LINQ to XML API读取XML就好了。此外,pathApp元素,而非属性,因此您当前正在错误地使用旧API。

尝试这样的事情:

var doc = XDocument.Load("btemp");

foreach (var button in doc.Root.Elements())
{
    var id = (int)button.Element("Button");
    var type = (string)button.Element("appType");
    var isActive = (bool)button.Element("isActive");
    ...
}