Доброго времени суток. Возникла следующая проблема, есть XML файл, у меня получается его считать и записать данные в ComboBox, хотелось что бы при выборе в "Combobox"-e нужного значения выводились не все узлы сразу, а только по порядку. Т.е если в "combobox"-e выбран атрибут со значением "Bill Gates", то в GridView выводились company и age именно этого узла. А у меня выводится все сразу...
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
dataSet1.ReadXml(@"F:\XML1.xml");
dataGridView1.DataSource = dataSet1;
dataGridView1.DataMember = "operation";
}
private void button2_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"F:\XML1.xml");
XmlElement element = doc.DocumentElement;
foreach (XmlNode xml in element.SelectNodes("//Путь/путь"))
{
foreach (XmlNode child in xml.ChildNodes)
{
if (child.Name == "operation")
{
XmlNode Att = child.Attributes.GetNamedItem("info");
comboBox1.Items.Add(Att.Value);
}
}
}
}
Пример XML:
<?xml version="1.0" encoding="utf-8" ?>
<users>
<user name="Bill Gates" info="2">
<company>Microsoft</company>
<age>48</age>
</user>
<user name="Larry Page" info="3">
<company>Google</company>
<age>42</age>
</user>
Попробуй воспользоваться методом Select
у DataTable.
С помощью него ты сможешь отобрать нужные элементы.
P.S На мой взгляд нерационально на каждый чих комбобокса грузить по новой данные в DataTable.
Лучше считать их 1 раз в свойство класса, а потом использовать.
Нашел решение:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var path = @"F:\XML1.xml";
var doc = XElement.Load(path);
var item = doc.Descendants("operation").Where(el => el.Attribute("info").Value == comboBox1.Text).Select(n => new { Company = n.Element("oper_number").Value, Age = n.Element("oper_name").Value }).FirstOrDefault();
MessageBox.Show(string.Format("Company: {0}, Age: {1}", item.Company, item.Age), "Result");
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как сделать какое либо действие на клавишу ESC если программа свернута?
У меня есть взятая из буфера обмена скопированная из браузера 194 и она не конвертируется, пишет
Доброго дня, друзья! Тщательно готовился перед тем как задать вопросИ вот