我想删除具有我从Request.QueryString["removect"]
获得的值的城市节点,并根据特定用户ID说明<user Id="4/29/2015 6:11:34 PM">
。
<Users>
<user Id="4/28/2015 11:29:44 PM">
<city>Moga</city>
<city>Rupnagar</city>
<city>Fatehgarh Sahib</city>
</user>
<user Id="4/29/2015 10:59:06 AM">
<city>Bathinda</city>
<city>Pathankot</city>
</user>
<user Id="4/29/2015 6:11:34 PM">
<city>Pathankot</city>
<city>Tarn Taran</city>
</user>
</Users>
我用来完成此任务的代码如下:
xmlDocument.Descendants("user").Where(x => (string)x.Attribute("Id") == usrCookieId)
.Elements("city")
.Where(x => (string)x.Value ==Request.QueryString["removect"]).Remove();
代码执行但没有任何反应。
答案 0 :(得分:0)
试试这个: -
我已经开始使用city
,然后使用其父级user
过滤您的条件,由于x
由城市元素组成,我们可以直接过滤它。现在,我使用First
仅获取第一个匹配元素,一旦我们需要使用city
节点,我们需要使用的是Remove
。
XDocument xmlDocument= XDocument.Load("YourXMLFile");
xmlDocument.Descendants("city").First(x => (string)x.Parent.Attribute("Id") == usrCookieId
&& (string)x == Request.QueryString["removect"]).Remove();
xmlDocument.Save("YourXMLFilePath");