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

面试题 相关文章推荐
如何启动时不需输入用户名与密码
May 09 面试题
JDO的含义
Nov 17 面试题
介绍Java的内部类
Oct 27 面试题
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
Jul 16 面试题
存储过程和sql语句的优缺点
Jul 02 面试题
.NET程序员的几道面试题
Jun 01 面试题
.NET里面什么时候需要调用垃圾回收
Jun 01 面试题
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
Sep 29 面试题
C#中有没有静态构造函数,如果有是做什么用的?
Jun 04 面试题
Linux的主要特性
Sep 03 面试题
北京鼎普科技股份有限公司软件测试面试题
Apr 07 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
Jan 12 面试题
如何在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多维数组排序array详解
2017/11/21 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
javascript 闭包
2011/09/15 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
node.js基于express使用websocket的方法
2017/11/09 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
python实现图片变亮或者变暗的方法
2015/06/01 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
python config文件的读写操作示例
2019/09/27 Python
Python os模块常用方法和属性总结
2020/02/20 Python
Python PyQt5整理介绍
2020/04/01 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
html5与css3小应用
2013/04/03 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
企划专员岗位职责
2013/12/09 职场文书
有创意的广告词
2014/03/18 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
Python图片验证码降噪和8邻域降噪
2021/08/30 Python