[英]Delete XML Nodes from StringBuilder in C#
我在StringBuilder
xml中有結構節點,現在我想刪除一些包含年份的節點,例如,我要刪除具有此結構的所有節點:
<dropDownValue caption='2013' key='2013'>
及其內部的所有節點
來自我的xml的代碼:
<dropDownValue caption='2013' key='2013'>
<dropDown default='sdrive23i.aspx#ulTopMenu'>
<description caption='Модификация'>
<modifyResource placeholder='modification'/>
</description>
<dropDownValue caption='sDrive23i' key='sdrive23i.aspx#ulTopMenu'/>
<dropDownValue caption='sDrive30i' key='sdrive30i.aspx#ulTopMenu'/>
<dropDownValue caption='sDrive35i' key='sdrive35i.aspx#ulTopMenu'/>
</dropDown>
</dropDownValue>
<dropDownValue caption='2013' key='2013'>
<dropDown default='30d.aspx#ulTopMenu'>
<description caption='Модификация'>
<modifyResource placeholder='modification'/>
</description>
<dropDownValue caption='3.0D' key='30d.aspx#ulTopMenu'/>
<dropDownValue caption='3.6' key='36.aspx#ulTopMenu'/>
<dropDownValue caption='4.8GTS' key='48gts.aspx#ulTopMenu'/>
<dropDownValue caption='4.8S' key='48s.aspx#ulTopMenu'/>
<dropDownValue caption='4.8Turbo S' key='48turbos.aspx#ulTopMenu'/>
</dropDown>
</dropDownValue>
<dropDownValue caption='2013' key='2013'>
<dropDown default='27.aspx#ulTopMenu'>
<description caption='Модификация'>
<modifyResource placeholder='modification'/>
</description>
<dropDownValue caption='2.7' key='27.aspx#ulTopMenu'/>
<dropDownValue caption='S 3.4' key='s34.aspx#ulTopMenu'/>
</dropDown>
</dropDownValue>
<dropDownValue caption='2013' key='2013'>
<dropDown default='4s_4_8.aspx#ulTopMenu'>
<description caption='Модификация'>
<modifyResource placeholder='modification'/>
</description>
<dropDownValue caption='4S 4.8' key='4s_4_8.aspx#ulTopMenu'/>
<dropDownValue caption='S 4.8' key='s_4_8.aspx#ulTopMenu'/>
<dropDownValue caption='Turbo 4.8' key='turbo_4_8.aspx#ulTopMenu'/>
</dropDown>
</dropDownValue>
如何使用XDocument:
var xml = XDocument.Load("yourfile.xml");
xml.Descendants("dropDownValue")
.Where(e => e.Attribute("caption").Value == "2013" && e.Attribute("key").Value == "2013").Remove();
//your xml as a string again
var stringXml = xml.ToString();
或者使用XmlDocument:
var xmlDoc = new XmlDocument();
xmlDoc.Load("file.xml");
XmlNodeList nodes = xmlDoc.SelectNodes("//dropDownValue[@caption='2013' and @key='2013']");
foreach (XmlNode node in nodes)
node.ParentNode.RemoveChild(node);
//your xml as a string again
var xmlDocString = xmlDoc.OuterXml;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.