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

面试题 相关文章推荐
Java面试中常遇到的问题,也是需要注意的几点
Aug 30 面试题
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
May 18 面试题
阿里巴巴Oracle DBA笔试题答案-备份恢复类
Nov 20 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
Jun 13 面试题
北京某公司的.net笔试题
Mar 20 面试题
开放系统互连参考模型
Jun 29 面试题
渗透攻击的测试步骤
Jun 07 面试题
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
Jul 11 面试题
通用C#笔试题附答案
Nov 26 面试题
一些Unix笔试题和面试题
Sep 25 面试题
什么是GWT的Module
Jan 20 面试题
mysql有关权限的表都有哪几个
Apr 22 面试题
如何在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中函数的形参与实参的问题说明
2010/09/01 PHP
PHP目录函数实现创建、读取目录教程实例
2011/01/13 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
form自动提交实例讲解
2017/07/10 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
vue 挂载路由到头部导航的方法
2017/11/13 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
给护士表扬信
2014/01/19 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
科技活动周标语
2014/10/08 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
旅游投诉信范文
2015/07/02 职场文书
工商局调档介绍信
2015/10/22 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS
Python if else条件语句形式详解
2022/03/24 Python
nginx搭建NFS网络文件系统
2022/04/14 Servers