При этом удаляется любой узел ReceiptLayout
, у которого есть дочерний элемент Name
, который начинается и заканчивается скобками и выдает желаемый результат:
XDocument doc = XDocument.Load(@"test.xml"); //load xml
var nodesToRemove = doc.Descendants("ReceiptLayout")
.Where(x => x.Element("Name").Value.StartsWith("{")
&& x.Element("Name").Value.EndsWith("}"))
.ToList();
foreach (var node in nodesToRemove)
node.Remove();
Это можно сократить до одного оператора Linq, лично я предпочитаючтобы разделять запрос и модификацию (удаление) Linq:
doc.Descendants("ReceiptLayout")
.Where(x => x.Element("Name").Value.StartsWith("{")
&& x.Element("Name").Value.EndsWith("}"))
.Remove();