从组合框中选择项目时,将数据从xml文件获取到文本框。怎么能实现这一目标?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从组合框中选择项目时,将数据从xml文件获取到文本框。怎么能实现这一目标?相关的知识,希望对你有一定的参考价值。

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);
}

我想要实现的是,如果我从组合框中选择John,我需要从XML文件中获取John的工资值(29000)并将其显示在文本框中

答案

这应该做到这一点

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
另一答案

只需选择employee元素,您就可以通过索引器([])访问其子元素:

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

    FeedComboBox.Items.Add($"{name} ({salary})");
}

以上是关于从组合框中选择项目时,将数据从xml文件获取到文本框。怎么能实现这一目标?的主要内容,如果未能解决你的问题,请参考以下文章

从组合框中选择项目时,如何从数据库中获取 ID 值?

如何根据从其他框中选择的文本更改动态创建的组合框的显示项

Python Selenium从两个组合框中获取数据

当用户从 MS Access 的组合框中选择“其他”时,如何显示输入表单?

从绑定到数据集的组合框中删除重复项

从访问 vba 中的多值组合框中获取值