[英]How to load properties from XML file with C#
我有一個創建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.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 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>
我試圖讀取每個節點的不同屬性(Button,appType,isActile),但是文檔對我沒有幫助。加載每個屬性的最佳方法是什么? 此代碼無效。
public void loadXmlButton()
{
XmlDocument doc = new XmlDocument();
doc.Load("btemp");
foreach (XmlNode node in doc.DocumentElement.ChildNodes)
{
string s = node.Attributes["pathApp"]?.InnerText;
Console.WriteLine(s);
}
}
如建議的那樣,最好使用與編寫XML相同的LINQ to XML API來讀取XML。 另外, pathApp
是一個element ,而不是attribute ,因此您當前錯誤地使用了舊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");
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.