简体   繁体   English

C#使用while语句中的数据填充listview

[英]C# Populating listview with data in while statement

I got a frustrating c# problem. 我遇到了一个令人沮丧的C#问题。 I have this XML data: 我有以下XML数据:

<entries>
  <schedule>
    <flight>UAL9858</flight>
    <dep>San Francisco, CA (KSFO)</dep>
    <deptime>07:00:00</deptime>
    <arr>(URSS)</arr>
    <arrtime>20:00:00</arrtime>
    <ac>744</ac>
    <dur>15:15:00</dur>
    <cat>1</cat>
    <id>28858</id>
  </schedule>
  <schedule>
    <flight>UAL9857</flight>
    <dep>San Francisco, CA (KSFO)</dep>
    <deptime>07:00:00</deptime>
    <arr>(URSS)</arr>
    <arrtime>20:00:00</arrtime>
    <ac>777</ac>
    <dur>15:15:00</dur>
    <cat>1</cat>
    <id>28857</id>
  </schedule>
  <schedule>
    <flight>SKW6289</flight>
    <dep>San Francisco, CA (KSFO)</dep>
    <deptime>19:38:00</deptime>
    <arr>Albuquerque, NM (KABQ)</arr>
    <arrtime>23:04:00</arrtime>
    <ac>CRJ</ac>
    <dur>02:26:00</dur>
    <cat>1</cat>
    <id>10413</id>
  </schedule>
</entries>

Now i have a column for each node(dep, deptime, arr, arrtime,ac,dur,cat,id), and I want to populate each row with the text content between each , with each entry below that being in its own column. 现在我为每个节点都有一个列(dep,deptime,arr,arrtime,ac,dur,cat,id),并且我想在每个行中填充每个之间的文本内容,其下方的每个条目都在其自己的列中。 This way the entire xml document appears in a table format. 这样,整个xml文档都以表格格式显示。 I am using the following format to populate a textbox with the read xml information(for debugging purposes): 我正在使用以下格式用读取的xml信息填充文本框(出于调试目的):

using (XmlReader reader = XmlReader.Create(fullURL))
            {
                while (reader.Read())
                {
                    if (reader.IsStartElement())
                    {

                        switch (reader.Name)
                        {

                            case "flight":
                                var flight = reader.ReadElementContentAsString();
                                textBox3.AppendText(flight + " | ");
                                break;
                            case "dep":
                                var dep = reader.ReadElementContentAsString();
                                textBox3.AppendText(dep + " | ");
                                break;
                            case "deptime":
                                var deptime = reader.ReadElementContentAsString();
                                textBox3.AppendText(deptime + " | ");
                                break;
                            case "arr":
                                var arr = reader.ReadElementContentAsString();
                                textBox3.AppendText(arr + " | ");
                                break;
                            case "arrtime":
                                var arrtime = reader.ReadElementContentAsString();
                                textBox3.AppendText(arrtime + " | ");
                                break;
                            case "ac":
                                var ac = reader.ReadElementContentAsString();
                                textBox3.AppendText(ac + " | ");
                                break;
                            case "dur":
                                var dur = reader.ReadElementContentAsString();
                                textBox3.AppendText(dur + " | ");
                                break;
                            case "cat":
                                var cat = reader.ReadElementContentAsString();
                                textBox3.AppendText(cat + " | ");
                                break;
                            case "id":
                                var id = reader.ReadElementContentAsString();
                                textBox3.AppendText(id + " | ");
                                break;

How would i accomplish this task? 我将如何完成这项任务?

public class Schedule{
  string flight {get; set; }
string dep {get; set; }
string deptime {get; set; }
string arr {get; set; }
string arrtime {get; set; }
string ac {get; set; }
string dur {get; set; }
string cat {get; set; }
string id {get; set; }
}

public List<Schedule> Schedules = new List<Schedule>();

Schedule current;
using (XmlReader reader = XmlReader.Create(fullURL))
            {
                while (reader.Read())
                {
                    current = new Schedule();
                    if (reader.IsStartElement())
                    {

                        switch (reader.Name)
                        {

                            case "flight":
                                current.flight = reader.ReadElementContentAsString();
                                break;
                            case "dep":
                                current.dep = reader.ReadElementContentAsString();
                                break;
                            case "deptime":
                                current.deptime = reader.ReadElementContentAsString();
                                textBox3.AppendText(deptime + " | ");
                            case "arr":
                                current.arr = reader.ReadElementContentAsString();
                                break;
                            case "arrtime":
                                current.arrtime = reader.ReadElementContentAsString();
                                break;
                            case "ac":
                                var ac = reader.ReadElementContentAsString();
                                textBox3.AppendText(ac + " | ");
                                break;
                            case "dur":
                                current.dur = reader.ReadElementContentAsString();
                                break;
                            case "cat":
                                current.cat = reader.ReadElementContentAsString();
                                break;
                            case "id":
                                current.Id = reader.ReadElementContentAsString();
                                break;

Schedule.Add(current)
}
}
}

once you have your list of Schedule populated you can display it however you like. 一旦您填充了时间表列表,就可以根据需要显示它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM