从 XML 填充组合框
本文关键字:组合 填充 XML | 更新日期: 2023-09-27 18:30:40
我正在尝试使用XML文件中的字段在C#中填充组合框,但没有运气...我不知道这里出了什么问题(它没有显示任何东西):
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("Baza_de_cunostinte.xml");
var dataSource = new List<Persoane>();
string PersoanaPlacuta;
foreach (XmlNode node in doc.DocumentElement)
{
string persoanaPlacuta = node["PersoanaPlacuta"].InnerText.Replace("'"", "");
comboBox1.Items.Add(persoanaPlacuta);
}
}
这是 XML 文件:
<root>
<Persoane>
<Nume>"Bob"</Nume>
<IsMale>true</IsMale>
<Varsta>30</Varsta>
<PersoanaPlacuta>"Iulia"</PersoanaPlacuta>
</Persoane>
<Persoane>
<Nume>"Bogdan"</Nume>
<IsMale>true</IsMale>
<Varsta>28</Varsta>
<PersoanaPlacuta>"Ana"</PersoanaPlacuta>
</Persoane>
</root>
我认为您没有在正确的 Xml 节点地址中搜索。您应该使用完整地址来查找目标节点。
使用 XmlNodeList
获取具有完整地址的所有节点,然后遍历其项:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("Baza_de_cunostinte.xml");
var dataSource = new List<Persoane>();
string PersoanaPlacuta;
XmlNodeList xmlNodeList = doc.SelectNodes("//root//Persoane");
foreach (XmlNode node in xmlNodeList)
{
string PersoanaPlacuta = node.ChildNodes[3].InnerText.Replace("'"", "");
comboBox1.Items.Add(PersoanaPlacuta);
}
}
您也可以像这样更改foreach
循环:
foreach (string PersoanaPlacuta in from XmlNode node in xmlNodeList
select node.ChildNodes[3].InnerText.Replace("'"", ""))
{
comboBox1.Items.Add(PersoanaPlacuta);
}
注意:您最好在第一行添加comboBox1.Items.Clear();
,否则您将在ComboBox中获得重复的项目