【发布时间】:2016-01-08 12:36:59
【问题描述】:
我正在尝试根据某个属性值从 XML 中删除一条记录。我的 XML 结构如下:
<?xml version="1.0" encoding="utf-8"?>
<Users>
<User>
<UserId>12345</UserId>
<FirstName>abcd</FirstName>
<LastName>efgh</LastName>
<Email>Hello@hello.com</Email>
<IsAdmin>No</IsAdmin>
</User>
<User>
<UserId>67890</UserId>
<FirstName>ijklm</FirstName>
<LastName>nopqr</LastName>
<Email>world@world.com</Email>
<IsAdmin>No</IsAdmin>
</User>
<User>
<UserId>12678</UserId>
<FirstName>stuv</FirstName>
<LastName>wxyz</LastName>
<Email>foo@bar.com</Email>
<IsAdmin>Yes</IsAdmin>
</User>
</Users>
例如,如果属性值为 12345,则应从 XML 中删除以下记录。
<User>
<UserId>12345</UserId>
<FirstName>abcd</FirstName>
<LastName>efgh</LastName>
<Email>Hello@hello.com</Email>
<IsAdmin>No</IsAdmin>
</User>
我尝试了以下代码,但无法从 XML 中删除任何内容。
string path = Server.MapPath("~/XML/users.xml");
XElement xEle = XElement.Load(path);
var qry = from element in xEle.Descendants()
where (string)element.Attribute("UserId").Value == "12345"
select element;
if (qry.Count() > 0)
qry.First().Remove();
xEle.Save(path);
我无法弄清楚这一点。任何帮助都将不胜感激。谢谢
【问题讨论】:
标签: c# xml asp.net-mvc linq