解析XML并填充到列表框中
问题描述:
我发布了相同的问题here,我也得到了一些很好的答案。当我尝试相同的答案时,我收到编译错误。后来我才知道我们使用的是.NET 2.0
,我们现有的应用程序没有提及LINQ文件。解析XML并填充到列表框中
在SO
搜索后,我试图想出部分:
public partial class Item
{
public object CHK { get; set; }
public int SEL { get; set; }
public string VALUE { get; set; }
}
解析:
XmlDocument doc = new XmlDocument();
doc.LoadXml("<LISTBOX_ST>
<item><CHK></CHK><SEL>00001</SEL><VALUE>val01</VALUE></item>
<item><CHK></CHK><SEL>00002</SEL><VALUE>val02</VALUE></item>
<item><CHK></CHK><SEL>00003</SEL><VALUE>val03</VALUE></item>
<item><CHK></CHK><SEL>00004</SEL><VALUE>val04</VALUE></item>
<item><CHK></CHK><SEL>00005</SEL><VALUE>val05</VALUE></item>
</LISTBOX_ST>");
List<Item> _lbList = new List<Item>();
foreach (XmlNode node in doc.DocumentElement.ChildNodes)
{
string text = node.InnerText; //or loop through its children as well
//HOW - TO - POPULATE THE ITEM OBJECT ??????
}
listBox1.DataSource = _lbList;
listBox1.DisplayMember = "VALUE";
listBox1.ValueMember = "SEL";
如何阅读两个子节点 - SEL和节点的值,并填充在同一新项目DTO?
答
你可以做到这一点就像这样:
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<LISTBOX_ST>
<item><CHK></CHK><SEL>00001</SEL><VALUE>val01</VALUE></item>
<item><CHK></CHK><SEL>00002</SEL><VALUE>val02</VALUE></item>
<item><CHK></CHK><SEL>00003</SEL><VALUE>val03</VALUE></item>
<item><CHK></CHK><SEL>00004</SEL><VALUE>val04</VALUE></item>
<item><CHK></CHK><SEL>00005</SEL><VALUE>val05</VALUE></item>
</LISTBOX_ST>");
List<Item> _lbList = new List<Item>();
foreach (XmlNode node in doc.DocumentElement.ChildNodes)
{
string chk = node.ChildNodes[0].InnerText;
int sel = int.Parse(node.ChildNodes[1].InnerText);
string value = node.ChildNodes[2].InnerText;
Item item = new Item();
item.CHK = chk;
item.VALUE = value;
item.SEL = sel;
_lbList.Add(item);
}
listBox1.DataSource = _lbList;
listBox1.DisplayMember = "VALUE";
listBox1.ValueMember = "SEL";