tec*_*ble 1 c# xpath xmldocument
我有一个XML文件,例如
<Bars1>
<Bar name='0'>245</Bar>
<Bar name='1'>180</Bar>
<Bar name='2'>120</Bar>
<Bar name='3'>60</Bar>
<Bar name='4'>0</Bar>
</Bars1>
<Bars2>
<Bar name='0'>25</Bar>
<Bar name='1'>10</Bar>
<Bar name='2'>10</Bar>
<Bar name='3'>6</Bar>
<Bar name='4'>0</Bar>
</Bars2>
<Gubbins3>
<Bar name='0'>45</Bar>
<Bar name='1'>18</Bar>
<Bar name='2'>12</Bar>
<Bar name='3'>4</Bar>
<Bar name='4'>0</Bar>
</Gubbins3>
Run Code Online (Sandbox Code Playgroud)
和一个List<int>notNeededBarNames,包含例如{1,3}
我已经将XML文件加载到XmlDocumentxmlDoc中,并且想要删除任何"Bar"元素,其中属性"name"是我列表中的整数之一,无论它在XML中可能存在于何处.我的例子很小,但实际上文档和列表可能非常大.
这样做有一个很好的方法吗?我可以"蛮力"它,但我不禁觉得可能有更好的方法.
希望你能帮忙!
Linq2Xml可以让生活更轻松.
var notNeededBarNames = new List<int>() { 1, 3 };
var xDoc = XDocument.Load(filename);
xDoc.Descendants("Bar")
.Where(bar => notNeededBarNames.Contains( (int)bar.Attribute("name")) )
.Remove();
var newXml = xDoc.ToString();
Run Code Online (Sandbox Code Playgroud)