【发布时间】:2014-08-14 10:14:09
【问题描述】:
我已将类似于以下内容的 Xml 加载到 XDocument 中
<requestlist>
<request name="Apple" jobtype="radio">
<schedule intervalminutes="1440" daily="true" updateDateTime="2014-08-07T15:43:00Z">
<channel>someData/channel>
<signal>someData</readysignal>
<frequency>someData</frequency>
</schedule>
<file>someData</file>
<file>someData</file>
</request>
</requestlist>
我现在想添加第二个请求,该请求首先包含他的一些信息,并删除一些不需要的元素,例如
<request name="newBanana">
<schedule intervalminutes="1440" daily="true" updateDateTime="2014-08-07T15:43:00Z">
</schedule>
<file>someData</file>
</request>
有没有一种简单的方法可以通过匹配列表来使用 Linq 删除元素 例如
using System.Xml.XPath;
XDocument configXml = XDocument.Parse(theXml)
var oldRequest = configXml.XPathSelectElement(@"/requestlist/request[@name=""Apple""]");
var nodesToRemove = new List<XName>() {"channel", "signal", "radio"};
var newRequest = oldRequest.Elements().Select(e => e.Name).Intersect(nodesToRemove); //OR something
【问题讨论】:
标签: c# xml linq xml-parsing linq-to-xml