编程实现去掉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...

面试题 相关文章推荐
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
Oct 06 面试题
广州地球村科技数据库题目
Apr 25 面试题
汇智创新科技发展有限公司
Dec 06 面试题
.NET面试题:什么是反射
Sep 30 面试题
标记环介质访问控制协议
Mar 27 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
Jul 26 面试题
几个常见的消息中间件(MOM)
Jan 08 面试题
如何获得EntityManager
Feb 09 面试题
Java中会存在内存泄漏吗,请简单描述
Dec 22 面试题
Java文件和目录(IO)操作
Aug 26 面试题
Delphi软件工程师试题
Jan 29 面试题
请介绍一下WSDL的文档结构
Mar 17 面试题
如何在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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
JS 表单验证大全
2011/11/23 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
Js参数值中含有单引号或双引号问题的解决方法
2013/11/06 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
2017/03/30 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
Shell如何接收变量输入
2016/08/06 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
医院工作检讨书范文
2014/02/10 职场文书
体育教师自我鉴定
2014/02/12 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
小学师德师风整改措施
2014/10/27 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server