我想检查XML中的重复元素,并在标签上为重复元素提供警报

编程入门 行业动态 更新时间:2024-10-12 01:24:13
本文介绍了我想检查XML中的重复元素,并在标签上为重复元素提供警报的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

XML: -

<?xml version =1.0encoding =utf-8?> < List> < Email_Entry>< / Email_Entry> < Email_Entry EmailID =qw@gmail/> < Email_Entry EmailID =qw@gmail/> < Email_Entry EmailID =qw@gmail/> < Email_Entry EmailID =qw@gmail/> < Email_Entry EmailID =shssh@gmail/> < / List>

我尝试过:

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已存在; } 其他 { Emailxml.Root.Add(新XElement(Email_Entry,新XAttribute(EmailID,EmailID)) ); Emailxml.Save(FILE_PATH); lblEmail.Text =订阅成功; } }

任何人都可以说错了吗?

解决方案

这将只返回重复的电子邮件地址。

var duplicateEmails = Emailxml.Descendants( Email_Entry) // 电子邮件节点 .GroupBy(x = > x.Name) // 逐个元素 .Where(x = > x.Count()> 1 ) // 选择超过1的组 。选择(x = > x.Key.LocalName) // 元素内容 .ToList();

XML:-

<?xml version="1.0" encoding="utf-8"?> <List> <Email_Entry></Email_Entry> <Email_Entry EmailID="qw@gmail" /> <Email_Entry EmailID="qw@gmail" /> <Email_Entry EmailID="qw@gmail" /> <Email_Entry EmailID="qw@gmail" /> <Email_Entry EmailID="shssh@gmail" /> </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?

解决方案

This will return only the duplicated email addresses.

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();

更多推荐

我想检查XML中的重复元素,并在标签上为重复元素提供警报

本文发布于:2023-11-11 05:13:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1577472.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:元素   我想   并在   警报   上为

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!