我如何使用Linq删除其元素<CCInfo>
没有值0123的所有<CC>
部分?
来源文件:
<Processing>
<Mods>
<ListMods>
<Action>A</Action>
<GetMoreInd></GetMoreInd>
<QLDNameReq></QLDNameReq>
<CCAry>
<CCInfo>
<CC>0123</CC>
<Num>25</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
<CCInfo>
<CC>456</CC>
<Num>25</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
<CCInfo>
<CC>0123</CC>
<Num>99</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
<CCInfo>
<CC>0123</CC>
<Num>16</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
<CCInfo>
<CC>xyz</CC>
<Num>16</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
</CCAry>
</ListMods>
</Mods>
</Processing>
通缉输出
<Processing>
<Mods>
<ListMods>
<Action>A</Action>
<GetMoreInd></GetMoreInd>
<QLDNameReq></QLDNameReq>
<CCAry>
<CCInfo>
<CC>0123</CC>
<Num>25</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
<CCInfo>
<CC>0123</CC>
<Num>99</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
<CCInfo>
<CC>0123</CC>
<Num>16</Num>
<Cat></Cat>
<DtRange></DtRange>
</CCInfo>
</CCAry>
</ListMods>
</Mods>
</Processing>
感谢
答案 0 :(得分:4)
查询CCInfo
个节点,将CC
元素的值与您想要的值进行比较,然后调用XNode.Remove method
:
var query = xml.Descendants("CCInfo")
.Where(e => e.Element("CC").Value != "0123");
query.Remove();
Console.WriteLine(xml);