c# - 读取xml文件并将id的值写入C#中的相关文本框中

标签 c# xml

我有一个名为“ numbers.xml”的xml文件,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<program>
<box id="aaa" value="78678"/>
<box id="bbb" value="37287"/>
<box id="ccc" value="783"/>
<box id="ddd" value="7867"/>
<box id="eee" value="786"/>
<box id="fff" value="23"/>
<box id="ggg" value="453"/>
<box id="hhh" value="4537"/>
</program>


我想阅读此xml文件并填充文本框。但是在Windows窗体应用程序中,txtAAA.text值必须采用id =“ aaa”值,即78678。同样,txtBBB.text值必须采用id =“ bbb”值,即37287。
我怎样才能做到这一点?

编辑:

我这样尝试过:

 XmlDocument xmldoc = new XmlDocument();
 xmldoc.Load(openfiledialog1.FileName); 
 XmlNodeList nodelist = xmldoc.DocumentElement.ChildNodes;
 XmlNode xmlnode = nodelist.Item(0); 
 txtAAA.Text = xmlnode.Attributes["id"].InnerText; 


但是“ aaa”显示在文本框中。这完全是失败。 –

最佳答案

您可以创建xml项列表,并在foreach循环中基于TextBox名称分配。

假设TextBox名称为:

txtAAA
txtBBB
txtCCC
...etc


您只需删除txt部分即可找到正确的值ID

var data = XElement.Load("C:\\Test.xml").Descendants("box");

foreach (var textbox in Controls.OfType<TextBox>())
{
    var value = data.FirstOrDefault(v => v.Attribute("id").Value == textbox.Name.Replace("txt","").ToLower());
    if (value != null)
    {
        textbox.Text = value.Attribute("value").Value;
    }
}


测试:

关于c# - 读取xml文件并将id的值写入C#中的相关文本框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18303987/

相关文章:

c# - Linq 中的双重或三重 "where"子句

c# - 嵌套类没有命名空间

c# - DataGridView 中的颜色 alpha channel

c# - Entity Framework 异步问题上下文或查询?

c# - Orchard CMS 的问题

java - Android,Json解析错误

php - 如何在 Magento 中添加自定义字段以订购?

xml - BizTalk 业务流程 : My messages are not shown in Transform settings

xml - 在 ruby​​ 中写入 XML

c# - 在c#中创建一个隐藏的Xml文件