我想阅读以下xml文件格式:
<?xml version="1.0" encoding="ISO-8859-1"?>
<WIDECAST_DVB>
<channel name="XXX">
<event id="0" start_time="2015-01-27 14:00:00" duration="28800">
<short_event_descriptor lang="alb" name="Edicion informativ">Lajme nga vendi dhe bota</short_event_descriptor>
<extended_event_descriptor lang="alb">
<text />
</extended_event_descriptor>
</event>
<event id="1" start_time="2015-01-27 22:00:00" duration="28800">
<short_event_descriptor lang="alb" name="Edicion informativ">Lajme nga vendi dhe bota</short_event_descriptor>
<extended_event_descriptor lang="alb">
<text>jchdvdgd
</text>
</extended_event_descriptor>
</event>
<event id="2" start_time="2015-01-28 06:00:00" duration="28800">
<short_event_descriptor lang="alb" name="Edicion informativ">Lajme nga vendi dhe bota</short_event_descriptor>
<extended_event_descriptor lang="alb">
<text />
</extended_event_descriptor>
</event>
<event id="3" start_time="2015-01-28 14:00:00" duration="28800">
<short_event_descriptor lang="alb" name="Edicion informativ">Lajme nga vendi dhe bota</short_event_descriptor>
<extended_event_descriptor lang="alb">
<text />
</extended_event_descriptor>
</event>
</channel>
</WIDECAST_DVB>
我想阅读这些字段:
名, 开始时间, 持续时间, 短事件descriptor_name, 短事件描述(标签内的文字), extended_event_descriptor / text(文本标记内的文本)
我的课程是:
public class epg2
{
public epg2()
{
EventNumber = new List<Event>();
}
virtual public string channelname { get; set; }
virtual public List<Event> EventNumber { get; set; }
virtual public int number { get; set; }
}
public class Event
{
public Event()
{
}
virtual public DateTime starttime { get; set; }
virtual public int duration { get; set; }
virtual public string name { get; set; }
virtual public string shortDescription { get; set; }
virtual public string longDescription { get; set; }
}
答案 0 :(得分:3)
以LinqToXML为例:
XDocument doc = XDocument.Parse(xml);
var resultChannels =
doc.Descendants("channel")
.Select(
c =>
new epg2()
{
channelname = c.Attribute("name").Value,
EventNumber =
c.Elements("event")
.Select(e =>
new Event()
{
name = e.Element("short_event_descriptor").Attribute("name").Value,
starttime = DateTime.Parse(e.Attribute("start_time").Value),
duration = int.Parse(e.Attribute("duration").Value),
shortDescription = e.Element("short_event_descriptor").Value,
longDescription = e.Element("extended_event_descriptor").Element("text").Value
}).ToList()
}).ToList();