Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解析XML并填充到列表框中_C#_.net_Xml_Winforms_Listbox - Fatal编程技术网

C# 解析XML并填充到列表框中

C# 解析XML并填充到列表框中,c#,.net,xml,winforms,listbox,C#,.net,Xml,Winforms,Listbox,我是C#的新手 我想在Windows窗体中开发C#列表框。我发现链接很有用。 但列表框的输入将是以下格式的XML: <LISTBOX_ST> <item><CHK></CHK><SEL>00001</SEL><VALUE>val01</VALUE></item> <item><CHK></CHK><SEL>00002</SEL>&

我是C#的新手

我想在Windows窗体中开发
C#列表框。
我发现链接很有用。 但列表框的输入将是以下格式的XML:

<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>

00001val01
00002val02
00003val03
00004val04
00005val05
必须解析XML,并将其填充到列表框中。选择列表中的特定项目时,应返回其代码(即SEL节点的值)

任何关于如何有效解析和显示在列表中的指针/建议


XML来自SAP,预计将有大约300到400条记录。

使用Linq to XML,您可以执行以下操作:

public partial class item
{
    public object CHK { get; set; }
    public int SEL { get; set; }
    public string VALUE { get; set; }
}
在代码中的某个地方:

XDocument lbSrc = XDocument.Load("yourfile.xml");

List<item> _lbList = new List<item>();

foreach (XElement item in lbSrc.Descendants("item"))
{
   _lbList.Add(new item { CHK= item.Element("CHK").Value, 
                          SEL = Convert.ToInt32(item.Element("SEL").Value), 
                          VALUE = item.Element("VALUE").Value });
 }

那就够了

使用Linq to XML,您可以执行以下操作:

public partial class item
{
    public object CHK { get; set; }
    public int SEL { get; set; }
    public string VALUE { get; set; }
}
在代码中的某个地方:

XDocument lbSrc = XDocument.Load("yourfile.xml");

List<item> _lbList = new List<item>();

foreach (XElement item in lbSrc.Descendants("item"))
{
   _lbList.Add(new item { CHK= item.Element("CHK").Value, 
                          SEL = Convert.ToInt32(item.Element("SEL").Value), 
                          VALUE = item.Element("VALUE").Value });
 }

那就够了

您可以使用Linq到XML来这样做

XDocument xmldoc = XDocument.Load(xmlStream);
var items = (from i in xmldoc.Descendants("item")
             select new { Item = i.Element("SEL").Value, Value = i.Element("VALUE").Value }).ToList();

listBox1.DataSource = items;
listBox1.DisplayMember = "Item";
listBox1.ValueMember = "Value";

您可以使用LINQtoXML这样做

XDocument xmldoc = XDocument.Load(xmlStream);
var items = (from i in xmldoc.Descendants("item")
             select new { Item = i.Element("SEL").Value, Value = i.Element("VALUE").Value }).ToList();

listBox1.DataSource = items;
listBox1.DisplayMember = "Item";
listBox1.ValueMember = "Value";