2015-10-20 89 views
0

XML文件1我試圖合併兩個XML文件,但遇到了一些問題

<?xml version="1.0" encoding="utf-8"?> 
<Employees> 
    <Employee Id="1">  
    <FirstName>Aa</FirstName> 
    <LastName>PDC1</LastName> 
    <Salary> 
     <subsal>1</subsal> 
    </Salary> 
    </Employee> 
<Employee Id="2">  
    <FirstName>Bb</FirstName> 
    <LastName>PDC2A</LastName> 
    <Salary> 
     <subsal>2</subsal> 
    </Salary> 
    </Employee> 
    <Employee Id="3">  
    <FirstName>Cc</FirstName> 
    <LastName>PDC2B</LastName> 
    <Salary> 
     <subsal>3</subsal> 
    </Salary> 
    </Employee> 
</Employees> 

XML文件的2-:

<?xml version="1.0" encoding="utf-8"?> 
<Employees> 
    <Employee Id="1">  
    <FirstName>AaA</FirstName> 
    <LastName>PDC1</LastName> 
    <Salary> 
     <subsal>4</subsal> 
    </Salary>  
    </Employee> 
<Employee Id="2">  
    <FirstName>BbB</FirstName> 
    <LastName>PDC2A</LastName> 
    <Salary> 
     <subsal>5</subsal> 
    </Salary> 
    </Employee> 
</Employees> 

我必須將這些文件合併成一個,我用下面的代碼 - :

using System; 
using System.Xml; 
using System.IO; 
using System.Data; 

namespace merge_xml 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      try 
      { 
       XmlTextReader xmlreader1 = new XmlTextReader("C:\\Users\\saket.parasar.jha\\s.xml"); 
       XmlTextReader xmlreader2 = new XmlTextReader("C:\\Users\\saket.parasar.jha\\s1.xml"); 

       DataSet ds = new DataSet(); 
       ds.ReadXml(xmlreader1); 

       DataSet ds2 = new DataSet(); 
       ds2.ReadXml(xmlreader2); 

       ds.Merge(ds2); 

       Console.WriteLine("Completed merging XML documents"); 

       ds.WriteXml("C:\\Users\\saket.parasar.jha\\sneww.xml"); 

       ////XmlDocument doc = new XmlDocument(); 
       ////doc.Load(("C:\\Users\\saket.parasar.jha\\sneww.xml")); 
       ////XmlNodeList nodes = doc.SelectNodes("//product/id"); 
       //////int nNodeID = nodes.Count; 
       ////nNodeID++; 
      } 

      catch (System.Exception ex) 
      { 
       Console.Write(ex.Message); 
      } 
      Console.Read(); 
     } 
    } 
} 

輸出我得到是 - :

<?xml version="1.0" standalone="yes"?> 
<Employees> 
    <Employee Id="1"> 
    <FirstName>AaA</FirstName> 
    <LastName>PDC1</LastName> 
    <Salary> 
     <subsal>1</subsal> 
    </Salary> 
    <Salary> 
     <subsal>4</subsal> 
    </Salary> 
    </Employee> 
    <Employee Id="2"> 
    <FirstName>BbB</FirstName> 
    <LastName>PDC2A</LastName> 
    <Salary> 
     <subsal>2</subsal> 
    </Salary> 
    <Salary> 
     <subsal>5</subsal> 
    </Salary> 
    </Employee> 
    <Employee Id="3"> 
    <FirstName>Cc</FirstName> 
    <LastName>PDC2B</LastName> 
    <Salary> 
     <subsal>3</subsal> 
    </Salary> 
    </Employee> 
</Employees> 

而且所需的輸出應爲─:

<?xml version="1.0" encoding="utf-8"?> 
<Employees> 
    <Employee Id="1">  
    <FirstName>Aa</FirstName> 
    <LastName>PDC1</LastName> 
    <Salary> 
     <subsal>1</subsal> 
    </Salary> 
    </Employee> 
<Employee Id="2">  
    <FirstName>Bb</FirstName> 
    <LastName>PDC2A</LastName> 
    <Salary> 
     <subsal>2</subsal> 
    </Salary> 
    </Employee> 
    <Employee Id="3">  
    <FirstName>Cc</FirstName> 
    <LastName>PDC2B</LastName> 
    <Salary> 
     <subsal>3</subsal> 
    </Salary> 
    </Employee> 

<Employees> 
    <Employee Id="4">  
    <FirstName>AaA</FirstName> 
    <LastName>PDC1</LastName> 
    <Salary> 
     <subsal>4</subsal> 
    </Salary>  
    </Employee> 
<Employee Id="5">  
    <FirstName>BbB</FirstName> 
    <LastName>PDC2A</LastName> 
    <Salary> 
     <subsal>6</subsal> 
    </Salary> 
    </Employee> 
</Employees> 

</Employees> 

我應該嘗試一些其他的合併方法,如果可能的話,請提出一些代碼..

+1

您的代碼是正確的。要求是錯誤的。 XML只能有一個根標籤。您需要兩個違反XML標準的根員工標籤。 – jdweng

回答

0

修改XML file 2-:文件是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<Employees> 
    <Employee Id="4">  
     <FirstName>AaA</FirstName> 
     <LastName>PDC1</LastName> 
     <Salary> 
      <subsal>4</subsal> 
     </Salary>  
    </Employee> 
    <Employee Id="5">  
     <FirstName>BbB</FirstName> 
     <LastName>PDC2A</LastName> 
     <Salary> 
      <subsal>5</subsal> 
     </Salary> 
    </Employee> 
</Employees> 

更改Employee Id,你會得到你想要的。

+0

閱讀我的回覆。 – jdweng

+0

nope我應該自動增加屬性值.....因爲在一個合併的文件中第二個xml文件屬性應該從'1'和'2'更改爲'4'和'5'。 –

相關問題