我有兩個包含產品列表的XML文檔。目前,我們只複製一個並將其粘貼到另一箇中,然後創建一個新的合併文檔,但是,這兩個文件具有許多相同的產品,因此我需要合併兩個並刪除重複項。我的XML文檔的結構如下:刪除Xml中的重複文檔
<?xml version="1.0" encoding="iso-8859-1"?>
<table>
<row Code="HST15154"
ProductName="test"
ProductName_EN=""
Description_EN=""
Price=""
ProductType1="HST ACCESSORIES"
ProductType2="SAM - Accessories"
ProductCategory="Accessories"
Remarks=""
/>
</table>
我發現一些代碼,我試圖改變我的需求here。我只需要每個「代碼」中的一個。
using System;
using System.Collections.Generic;
using System.Xml;
namespace HST_Merging_Console_App
{
public class Program
{
public void Main(string[] args)
{
//open the xml document
XmlDocument doc = new XmlDocument();
doc.LoadXml("U:\\Documents (U)\\XML Merging Tool\\productcollection_us.xml");
//select all row elements
XmlNodeList parts = doc.SelectNodes("/row");
//create a list of previously seen P/Ns
List<string> PartsSeen = new List<string>();
foreach(XmlNode part in parts)
{
string partNumber = part.Attributes["Code"].Value;
//for each part, see if we have seen it before, if it is in the list,
//remove the part element from the parent to which it belongs
if (PartsSeen.Contains(partNumber))
part.ParentNode.RemoveChild(part);
else
PartsSeen.Add(partNumber);
}
Console.Read();
doc.Save("U:\\Documents (U)\\XML Merging Tool\\productcollection_merged.xml");
}
}
}
我收到了幾個錯誤,當我運行此:
CS1061 - 「XmlDocument的」不包含「的SelectNodes」的定義,並沒有擴展方法「的SelectNodes」接受第一個參數型「的XmlDocument」的可以找到(是否缺少using指令或程序集引用?)(第16行)
CS1503 - 參數1:不能從「字符串」轉換爲「System.IO.Stream」 (第33行)
我考慮過的另一種方法是將第一個文件加載到數據集中,然後取第二個文件並將其加載到第二個數據集中。然後遍歷第二個數據集搜索第一個數據集中的代碼,如果發現更新該行,如果沒有,則添加該行。
這是我第一次使用C#並嘗試創建一個程序在服務器上運行。任何幫助和/或建議非常感謝。
這是什麼類型的應用程序?你可以用XDocument來代替嗎? – sr28
我想做一個.net應用程序。另外,我正在使用Visual Studios 2015. – cheshire
你認爲重複的是什麼?一切都一樣嗎?或者它們都有唯一的代碼,例如只需要匹配就可以重複? – sr28