Получить данные из XML-файла в текстовое поле при выборе элемента в выпадающем списке.Как этого достичь? - PullRequest
0 голосов
/ 08 марта 2019

XML-файл:

<?xml version="1.0" encoding="UTF-8"?>
<employees>
  <employee>
    <name>John</name>
    <salary>29000</salary>  
  </employee>

  <employee>
    <name>Harry</name>
    <salary>35000</salary>  
  </employee>
</employees>

Здесь я заполняю имена сотрудников из XML-файла в выпадающем списке

XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNodeList colorList = doc.SelectNodes("employees/employee/name");
foreach (XmlNode Name in colorList)
{
    FeedComboBox.Items.Add(Name.InnerText);
}

Я пытаюсь добиться того, чтобы, если я выбрал Джона из поля со списком, мне нужно было получить значение зарплаты Джона (29000) из файла XML и отобразить его в текстовом поле

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Это должно сделать это

var root = XElement.Parse(stringxml);
var empName = "John";  // This will be the string you select from combobox
var query = root
        .XPathSelectElements(string.Format("/employee[name='{0}']", empName))
        .Select(et => new
        {
            salary = (string)et.Element("salary"),
        });

var results = query.ToList();
TextBox.Text = results[0].salary;  // Set the Salary to the textbox
1 голос
/ 08 марта 2019

Просто выберите элемент employee, и вы сможете получить доступ к его дочерним элементам через индексатор ([]):

foreach(XmlNode employee in doc.SelectNodes("employees/employee"))
{
    var name = employee["name"].InnerText;
    var salary = employee["salary"].InnerText;

    FeedComboBox.Items.Add($"{name} ({salary})");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...