[英]Conditionally remove sections of XML document with Linq
我將如何使用 Linq 刪除其元素<CC>
不具有值 0123 的所有<CCInfo>
部分?
源文件:
<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>
通緝 output
<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>
謝謝
查詢CCInfo
節點,將CC
元素的值與您想要的值進行比較,然后調用XNode.Remove method
:
var query = xml.Descendants("CCInfo")
.Where(e => e.Element("CC").Value != "0123");
query.Remove();
Console.WriteLine(xml);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.