编程实现去掉XML的重复结点


Posted in 面试题 onMay 28, 2014
写出一个函数来实现去掉任意一个给定的XML文档的重复结点,以给定的”key”重复作为结点重复的标准,如下例:



Milk
4


Milk
0.5


Coffe
0.5



当以Name字段作为key时,第一个和第二个结点是重复的,当Amount作为key时,则第二个和第三个结点是重复结点。
所以函数应该是这样格式的:
string DeDup(string xml, string keyNode, string rootPath)

参考解决方案:

private static string RemoveDuplicates(string xml, string key, string rootXPath)
{
XmlDocument doc = new XmlDocument();
List sb = new List();
string keyValue;
try
{
doc.Load(xml);
XmlElement root = doc.DocumentElement;
XmlNodeList xnodelist = root.SelectNodes(rootXPath);
int i=0;
foreach (XmlNode item in xnodelist)
{
Console.WriteLine(i + "\b\b\b\b\b");
i++;
keyValue = item.SelectSingleNode(key).InnerXml;
if (sb.Contains(keyValue))
xnode.RemoveChild(item);
else
sb.Add(keyValue);
}
return doc.OuterXml;
}
catch (Exception ex)
{
// Log exception...
throw ex;
}
}
这个方案只适合于小的xml文档,大的话应考虑应用SAX等解决方案来进行parse.

Tags in this post...

面试题 相关文章推荐
10条PHP编程习惯
May 26 面试题
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
Mar 25 面试题
Java多态性的定义以及类型
Sep 16 面试题
一道SQL存储过程面试题
Oct 07 面试题
.net软件工程师面试题
Mar 31 面试题
.NET程序员的几道面试题
Jun 01 面试题
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
Oct 24 面试题
网络安全类面试题
Aug 01 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
Sep 28 面试题
几道Java和数据库的面试题
May 30 面试题
如何拷贝一整个Java对象,包括它的状态
Dec 27 面试题
Java如何支持I18N?
Oct 31 面试题
如何在C# winform中异步调用web services
Sep 21 #面试题
静态成员和非静态成员的区别
May 12 #面试题
C# Debug和Testing相关面试题
Oct 25 #面试题
C#中有没有运算符重载?能否使用指针?
May 05 #面试题
const和static readonly区别
May 20 #面试题
某公司C#程序员面试题笔试题
May 26 #面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 #面试题
You might like
PHP序列化操作方法分析
2016/09/28 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
轮播的简单实现方法
2016/07/28 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
javascript实现下雨效果
2017/03/27 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
[01:37]DOTA2超级联赛专访ChuaN 传奇般的电竞之路
2013/06/19 DOTA
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
pycharm 使用心得(五)断点调试
2014/06/06 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
python学生信息管理系统
2018/03/13 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
几道PHP的面试题
2012/05/19 面试题
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
大学生个人先进事迹材料范文
2014/05/03 职场文书
售房委托书
2014/08/30 职场文书
初婚初育证明范本
2014/11/24 职场文书
三八妇女节寄语
2015/02/27 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
校运会宣传稿大全
2015/07/23 职场文书