Click here to Skip to main content
15,890,579 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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>


What I have tried:

aspx.cs:-
<pre>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";
            }            
        }


can anybody tell whts wrong?
Posted
Updated 3-Mar-17 21:10pm

1 solution

This will return only the duplicated email addresses.
C#
var duplicateEmails 
    = Emailxml.Descendants("Email_Entry")     // email node
                .GroupBy(x => x.Name)         // group by element
                .Where(x => x.Count() > 1)    // select groups where more than 1 found
                .Select(x => x.Key.LocalName) // element contents
                .ToList();
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900