C# 如何使用C从XML文件加载属性#
我有一个创建XML文件的方法C# 如何使用C从XML文件加载属性#,c#,xml,C#,Xml,我有一个创建XML文件的方法 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.ToStr
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();
}
正如所建议的,最好使用与编写XML相同的LINQtoXMLAPI来读取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");
...
}
正如所建议的,最好使用与编写XML相同的LINQtoXMLAPI来读取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");
...
}
为什么要编写元素而读取属性?我还强烈建议您在读取时使用LINQ to XML,就像编写时一样。这是一个更好的XML API。为什么要编写元素却要读取属性?我还强烈建议您在读取时使用LINQ to XML,就像编写时一样。这是一个更好的XMLAPI。
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");
...
}