如何在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

回到顶部