将XML数据添加到列表框
问题描述:
Total C#初学者在这里工作我的第一个简单的任务列表应用程序从一个Windows窗体。将XML数据添加到列表框
我想从一个XML文件导入数据到一个列表框,但是我一直遇到问题,而不是实际的数据(例如“拾取食品杂货”,“修理车”,“让这个更好! )我不断收到很多其他数据,如“
DocumentProperties xmlns="um.schemas-microsoft-come:office:office"
....等
我开始通过加载对话框,选择文件(保存为字符串‘文件’)。
然后我的代码;
XDocument doc = XDocument.Load(file);
foreach (XElement el in doc.Root.Elements())
{
el.ToString();
var task = el;
listBox1.Items.Add(task);
}
我已经尝试了几种不同的方法,没有从我的测试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());
}
}
}
您可以添加XML源? – Johnny 2014-12-03 12:20:32