如何在c中获取条件反序列化xml列表#
我想从某些情况下反序列化xml列表中获取数据。但我没有得到任何适当的解决方案。下面是我的代码片段:如何在c中获取条件反序列化xml列表#
public List<LinkInfo> GetLinks(string entityType, string relatedEntityType, string linkType) {
try
{
XmlSerializer deserializer = new XmlSerializer(typeof(Project));
TextReader reader = new StreamReader(@"E:\\SampleMetaData.xml");
object obj = deserializer.Deserialize(reader);
Project xmlData = (Project)obj;
return xmlData.Module.Links.Link.Select(field => new LinkInfo
{
EntityId = field.EntityId,
EntityType = field.EntityType,
RelatedEntityId = field.RelatedEntityId,
RelatedEntityType = field.RelatedEntityType,
LinkType = field.LinkType
}).ToList();
}
catch(Exception ex)
{
Console.WriteLine("Error in",ex);
throw;
}
}
下面是我的XML文件格式:
<Links> <Link EntityId="5" EntityType="Doors_Module1" RelatedEntityId="7" RelatedEntityType="Doors_Module2" LinkType="InLink"/>
<Link EntityId="6" EntityType="Doors_Module1" RelatedEntityId="8" RelatedEntityType="Doors_Module2" LinkType="InLink"/>
<Link EntityId="7" EntityType="Doors_Module1" RelatedEntityId="9" RelatedEntityType="Doors_Module2" LinkType="External"/>
</Links>
我要像where LinkType="Inlink" EntityType="Doors_Module1" and RelatedEntityType="Doors_Module2"
我怎样才能做到这一点去取? 感谢高级。
回答:
return xmlData.Module.Links.Link .Where(x=>.LinkType == 'Inlink' && x.EntityType == 'Doors_Module1')
.Select(field => new LinkInfo
{
EntityId = field.EntityId,
EntityType = field.EntityType,
RelatedEntityId = field.RelatedEntityId,
RelatedEntityType = field.RelatedEntityType,
LinkType = field.LinkType
}).ToList();
此代码应该为你
以上是 如何在c中获取条件反序列化xml列表# 的全部内容, 来源链接: utcz.com/qa/265133.html