C#winForm读取XML的问题,求解决,分不是问题
<?xmlversion="1.0"encoding="utf-8"?><test><person><Name>No</Name><age>11</age><favori...
<?xml version="1.0" encoding="utf-8"?>
<test>
<person>
<Name>No</Name>
<age>11</age>
<favorite>111</favorite>
</person01>
<person>
<Name>xx</Name>
<age>12</age>
<favorite>111</favorite>
</person01>
<person03>
<Name>cc</Name>
<age>111</age>
<favorite>11</favorite>
</person>
</test>
在listview里面有Name,age,favorite 三个Columns,
将上列的XML数据分别读取进去,,下面还有很多person
有多少读多少 。。请贴出完整代码,不用做解释,只需要代码,谢谢!分可以给 展开
<test>
<person>
<Name>No</Name>
<age>11</age>
<favorite>111</favorite>
</person01>
<person>
<Name>xx</Name>
<age>12</age>
<favorite>111</favorite>
</person01>
<person03>
<Name>cc</Name>
<age>111</age>
<favorite>11</favorite>
</person>
</test>
在listview里面有Name,age,favorite 三个Columns,
将上列的XML数据分别读取进去,,下面还有很多person
有多少读多少 。。请贴出完整代码,不用做解释,只需要代码,谢谢!分可以给 展开
展开全部
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("test.xml");
foreach (XmlNode node in xmldoc.DocumentElement.SelectNodes("person"))
{
ListViewItem item = new ListViewItem(node["Name"].InnerText);
item.SubItems.Add(node["Name"].InnerText);
item.SubItems.Add(node["age"].InnerText);
item.SubItems.Add(node["favorite"].InnerText);
this.listview1.Items.Add(item);
}
把你的person后面的01、03都去掉。还有像Name、age这种在同一级别的标签,最好写法统一,要么大写要么小写,别给自己制造出错的机会。
xmldoc.Load("test.xml");
foreach (XmlNode node in xmldoc.DocumentElement.SelectNodes("person"))
{
ListViewItem item = new ListViewItem(node["Name"].InnerText);
item.SubItems.Add(node["Name"].InnerText);
item.SubItems.Add(node["age"].InnerText);
item.SubItems.Add(node["favorite"].InnerText);
this.listview1.Items.Add(item);
}
把你的person后面的01、03都去掉。还有像Name、age这种在同一级别的标签,最好写法统一,要么大写要么小写,别给自己制造出错的机会。
展开全部
你的XML的格式确实有些问题
我理解你就是想把一个LIst<Persion> 保存成XML再读回来,然后把读回来的内容直接绑定到listview完事
序列化代码:
public static void Save(string path, LIst<Persion> list)
{
try
{
var ser = new XmlSerializer(typeof(List<Persion>));
using (TextWriter tw = new StreamWriter(path))
{
ser.Serialize(tw, list);
tw.Flush();
}
}
catch (Exception ex)
{
}
}
反序列化代码:
public static IList<Persion> Load(string path)
{
try
{
var ser = new XmlSerializer(typeof(List<Persion>));
using (TextReader tr = new StreamReader(path))
{
var instance = (List<Persion>)ser.Deserialize(tr);
return instance;
}
}
catch (Exception ex)
{
}
return null;
}
把得到的结果直接绑定到ListView上面,设置好相关的Field即可
我理解你就是想把一个LIst<Persion> 保存成XML再读回来,然后把读回来的内容直接绑定到listview完事
序列化代码:
public static void Save(string path, LIst<Persion> list)
{
try
{
var ser = new XmlSerializer(typeof(List<Persion>));
using (TextWriter tw = new StreamWriter(path))
{
ser.Serialize(tw, list);
tw.Flush();
}
}
catch (Exception ex)
{
}
}
反序列化代码:
public static IList<Persion> Load(string path)
{
try
{
var ser = new XmlSerializer(typeof(List<Persion>));
using (TextReader tr = new StreamReader(path))
{
var instance = (List<Persion>)ser.Deserialize(tr);
return instance;
}
}
catch (Exception ex)
{
}
return null;
}
把得到的结果直接绑定到ListView上面,设置好相关的Field即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似你的xml格式不合法,person/person01/person03标签没有正确的闭合。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询