[英]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.