我想检查 XML 中的重复元素。请帮忙!
XML:
<?xml version="1.0" encoding="utf-8"?>
<List>
<Email_Entry></Email_Entry>
<Email_Entry EmailID="qw@gmail.com" />
<Email_Entry EmailID="qw@gmail.com" />
<Email_Entry EmailID="qw@gmail.com" />
<Email_Entry EmailID="qw@gmail.com" />
<Email_Entry EmailID="shssh@gmail.com" />
</List>
aspx.cs:
protected void btnEmailSubscribe_Click(object sender, EventArgs e)
{
string EmailID = txtEmailSubscribe.Text;
string FILE_PATH = Server.MapPath("~/Logs/SubscribedEmails.xml");
XDocument Emailxml = XDocument.Load(FILE_PATH);
var EmailExist = Emailxml.Descendants("Email_Entry")
.Any(x => (string)x.Element("EmailID") == txtEmailSubscribe.Text);
if (EmailExist)
{
lblEmail.Text = "EmailID already exist";
}
else
{
Emailxml.Root.Add(new XElement("Email_Entry",
new XAttribute("EmailID", EmailID)
));
Emailxml.Save(FILE_PATH);
lblEmail.Text = "Subscribed Successfully";
}
}
最佳答案
检查属性值而不是元素:
var EmailExist = Emailxml.Descendants("Email_Entry")
.Any(x => x.Attribute("EmailID").Value == txtEmailSubscribe.Text);
关于C#:检查 XML 中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42593230/