我有一个创建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>
答案 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");
...
}