编程实现去掉XML的重复结点
写出一个函数来实现去掉任意一个给定的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 + "");
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.
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 + "");
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.
【编程实现去掉XML的重复结点】相关文章
2. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
4. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
5. 怎么处理XML的中文问题
7. 请写出一段Python代码实现删除一个list里面的重复元素
9. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
10. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
本文来源:https://www.mianshiwenti.com/a12976.html
进入下载页面
﹝编程实现去掉XML的重复结点﹞相关内容
- 如何删除一个表里面的重复行
- 如何查找和删除数据库中的重复数据
- xml有哪些解析技术?区别是什么
- 如何在web环境中配置applicationContext.xml文件
- Spring里面applicationContext.xml文件能不能改成其他文件名
- XML文档面试题
- 介绍一下XMLHttpRequest对象
- XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
- 介绍一下XMLHttpRequest对象的常用方法和属性
- 不同浏览器创建XMLHttpRequest方法有什么不同