[英]Delete specific Elements in XML file in C#
這是我的 XML 文件,我想保留 email 和電話號碼元素,並在運行時刪除 rest 元素(名字 - 性別)。
<Users>
<User idNumber="651635163">
<email>d@d.d</email>
<phoneNumber>0528754964</phoneNumber>
<FirstName>kujygv</FirstName>
<LastName>uyf</LastName>
<FatherName>uyfy</FatherName>
<MotherName>uyf</MotherName>
<GfatherName>uyf</GfatherName>
<DateOfBirth>06/04/1999</DateOfBirth>
<ImagePath>C:\Users\m\Desktop\pictures\me\meirl.jpg</ImagePath>
<Address>fyu</Address>
<Gender>זכר</Gender>
</User>
</Users>
所以結果應該是這樣的
<Users>
<User idNumber="651635163">
<email>d@d.d</email>
<phoneNumber>0528754964</phoneNumber>
</User>
</Users>
我嘗試使用 SelectNodes,但無法使其正常工作,提前致謝!
一探究竟。
c#
void Main()
{
const string fileName = @"e:\temp\Sadi.xml";
const string USER = "User";
// list of XML element names to keep
var listOfElements = new List<string> {"email", "phoneNumber"};
XDocument xdoc = XDocument.Load(fileName);
List<XElement> nodes = xdoc.Descendants(USER).ToList();
// Contains() simulates SQL NOT IN clause
nodes.Elements()
.Where(x => !listOfElements.Contains(x.Name.LocalName))
.Remove();
// save back to the file
xdoc.Save(fileName);
}
僅使用所需元素創建新 xml 的另一種方法
var document = XDocument.Load("path to the file");
var users = document.Descendants("User")
.Select(u => new XElement("User", u.Element("email"), u.Element("phoneNumber"))
.ToArray();
var newDocument = new XDocument(new XElement("Users", users));
newDocument.Save("path to the file");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.