将 XML 数据添加到列表框

本文关键字:列表 添加 XML 数据 | 更新日期: 2023-09-27 18:32:53

总 C# 初学者在这里从 Windows 窗体处理我的第一个简单任务列表应用程序。

我正在尝试将数据从XML文件导入列表框,但是我一直遇到问题,而不是实际数据(例如"买杂货","修理汽车","在这方面做得更好!我不断收到许多其他数据,例如"

DocumentProperties xmlns="um.schemas-microsoft-come:office:office"

....等

我首先加载对话框以选择文件(另存为字符串"file")。

我的代码是;

XDocument doc = XDocument.Load(file);
foreach (XElement el in doc.Root.Elements())
{
  el.ToString();
  var task = el;
  listBox1.Items.Add(task);
}

我已经尝试了几种不同的方法,但没有运气从我的测试 xml 文件中读取。我缺少一些简单的东西吗?

提前感谢您的帮助。

将 XML 数据添加到列表框

您的错误在于您没有为根 xml 文档指定 TagName。这是一个如何读取XML文件的示例:

我的XML文件 :

<?xml version="1.0" encoding="utf-8"?>
<head>
  <Config>
      <port>80</port>
      <thread>5</thread>
      <gSave>0</gSave>
      <bSave>0</bSave>
  </Config>
</head>

以及如何读取该 XML 的示例:

 protected string[] Config()
        {
            var retStrings = new[] {"","","",""};
            var xd = new XmlDocument();
            var fs = new FileStream("data/config.xml", FileMode.Open);
            xd.Load(fs);
            var list = xd.GetElementsByTagName("Config");
            for (var i = 0; i < list.Count; i++)
            {
                retStrings[0] = xd.GetElementsByTagName("port")[i].InnerText;
                retStrings[1] = xd.GetElementsByTagName("thread")[i].InnerText;
                retStrings[2] = xd.GetElementsByTagName("gSave")[i].InnerText;
                retStrings[3] = xd.GetElementsByTagName("bSave")[i].InnerText;
            }
            fs.Close();
            return retStrings;
        }

如果你能给我看你的XML文件,我会给你一个具体的例子。

试试下面的代码片段。

DataSet ds = new DataSet();
ds.ReadXml(@"C:'demo.xml");
   if (ds.Tables.Count > 0)
{ 
     for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
     {
        for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
          {
            listBox1.Items.Add(ds.Tables[0].Rows[i][j].ToString());
          }
     }
}