c# - 将数据从 XML 添加到组合框的 C# 问题
问题描述
我对 XML 文件相当陌生,我正在尝试从 XML 读取并从 XML 输入一些值并将它们存储在 Combobox 中。我查看了许多示例,但没有找到足够接近的示例来解决这个问题。我已经从 XML 文件中读取数据并将数据输入到 Combobox 中,但由于某种原因,所有内容都被添加到一行中。
这是 XML 文件的样子。
<menus>
<addMaterialForm>
<filamentType>
<Type>ABS</Type>
<Type>PETG</Type>
<Type>PLA</Type>
</filamentType>
</addMaterialForm>
</menus>
这是我的 C# 代码:
private void searchButton_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(Globals.xmlFilePath);
foreach (XmlNode node in doc.DocumentElement)
{
foreach (XmlNode child in node.ChildNodes)
{
filamentBox.Items.Add(child.InnerText);
}
}
}
由于某种原因,所有内部文本都被添加在一起,这就是我得到的结果。 结果
我真的在这里摸不着头脑,任何帮助都将不胜感激。
谢谢!
解决方案
好吧,您还没有使用 XPath 到达存在所需项目的正确父级(长丝类型)。因此,内部文本为您提供所有节点值。
使用 xpath,如:
//menus/addMaterialForm/filamentType
到达正确的父 XmlNode。然后遍历所有孩子并添加到组合框。
推荐阅读
- angular - Angular 6通过id从嵌套数组中获取对象
- php - php 错误:在布尔值上调用成员函数 fetch_assoc()
- python - 使用 diff() 方法减去行
- java - 我被困在Java中的第一个hackerrank挑战中
- javascript - Bootstrap 4 selectpicker基于所选值打开模式
- php - 替换功能不适用于多次替换
- html - 如何在 bootstrap 4 下拉菜单中应用网格系统来塑造它像附加的图像?
- regex - 解开交错的日志(文本)文件
- javascript - 无法在条形图中设置列的宽度
- javascript - 如何使用 JavaScript 将联系人添加到 Dynamics CRM 365