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

面试题 相关文章推荐
PHP面试题及答案二
May 23 面试题
金讯Java笔试题目
Jun 18 面试题
"序列点" 是什么
Jul 29 面试题
写出二分查找算法的两种实现
May 13 面试题
一套SQL笔试题
Aug 14 面试题
Oracle性能调优原则
May 03 面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
Feb 25 面试题
叙述DBMS对数据控制功能有哪些
Jun 12 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
Mar 27 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
Prototype如何为一个Ajax添加一个参数
Dec 06 面试题
设置器与访问器的定义以及各自特点
Jan 08 面试题
如何在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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
第七节 类的静态成员 [7]
2006/10/09 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
python中cPickle用法例子分享
2014/01/03 Python
Python中每次处理一个字符的5种方法
2015/05/21 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
用pycharm开发django项目示例代码
2018/10/24 Python
详解python中的Turtle函数库
2018/11/19 Python
解析python实现Lasso回归
2019/09/11 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
Python实现自动装机功能案例分析
2020/10/22 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
自我反省检讨书
2014/01/23 职场文书
房产代理公证处委托书
2014/04/04 职场文书
2015教师节通讯稿
2015/07/20 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书