【发布时间】:2020-03-26 19:45:49
【问题描述】:
我有一个 XML 文档,我在其中存储了一些数据,我需要查询该文件中的数据并获取一条记录,我使用此代码进行操作
xmlDoc = XDocument.Load("Data.xml");
var updateQuery = (from item in xmlDoc.Descendants("Event")
where item.Element("id").Value == id
select item).FirstOrDefault();
public class Event
{
public string id { get; set; }
public string title { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public virtual List<Contact> contacts { get; set; }
}
<Event>
<id>1</id>
<title>AA</title>
<start>2019-12-01T14:13:58.863</start>
<end>2019-12-01T15:13:58.787</end>
<contacts>
<contact>
<id>1</id>
<name>ABC</name>
</contact>
<contact>
<id>2</id>
<name>ABCD</name>
</contact>
<contact>
<id>3</id>
<name>ABCDE</name>
</contact>
</contacts>
</Event>
我得到了完美的结果,但我需要将数据放入 Event 对象中,我该如何实现呢?
【问题讨论】:
-
什么
Event对象? -
Event对象是自定义类吗?如果是,则将选定的XElement转换为Event对象与LINQ没有具体关系 -
我建议创建一个
public static Event FromXElement(XElement element)方法。实现它与查询部分完全分开-您是否尝试过编写任何代码将元素转换为Event?发生了什么? -
扩展 Jon 的评论,首先你可以做
var eventObject = new Event { id = element.Decedents('id').FirstOrDefault().Value}