我想從某些情況下反序列化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"
我怎樣才能做到這一點去取? 感謝高級。
我想你是使用XML序列化類工作的權利? 在這種情況下,你可以簡單地使用'.Where(x => x.LinkType =='Doors_Module1')' –
你能分享LinkInfo類嗎? –
動態對象,你可以使用foreach或for循環'obj。[i] .LinkType'種類關 –