2016-09-08 4 views
1

Ich habe die gleiche Frage wie hier: What is the fastest way to combine two xml files into one Leider funktionieren die dort gegebenen Antworten nicht gut.Kombiniere zwei XML-Dateien in eine Datei

Ich habe genau das gleiche Problem. Ich habe zwei Dateien:

XML1:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Results> 
    <Memory> 
    <instance00> 
     <PageFaultsPersec> 
     <sample time="9/8/2016 12:02:51 PM" value="1401.112" /> 
     <sample time="9/8/2016 12:02:52 PM" value="242.3494" /> 
     <sample time="9/8/2016 12:02:53 PM" value="303.1362" /> 
     </PageFaultsPersec> 
     <AvailableBytes> 
     <sample time="9/8/2016 12:02:51 PM" value="1.116967E+09" /> 
     <sample time="9/8/2016 12:02:52 PM" value="1.11702E+09" /> 
     <sample time="9/8/2016 12:02:53 PM" value="1.11761E+09" /> 
     </AvailableBytes> 
    </instance00> 
    </Memory> 
</Results> 

XML2:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Results> 
    <Processor> 
    <instance_Total> 
     <PercentProcessorTime> 
     <sample time="9/8/2016 12:02:51 PM" value="18.4567" /> 
     <sample time="9/8/2016 12:02:52 PM" value="3.032005" /> 
     <sample time="9/8/2016 12:02:53 PM" value="0" /> 
     </PercentProcessorTime> 
     <PercentUserTime> 
     <sample time="9/8/2016 12:02:51 PM" value="17.04996" /> 
     <sample time="9/8/2016 12:02:52 PM" value="3.03025" /> 
     <sample time="9/8/2016 12:02:53 PM" value="0" /> 
     </PercentUserTime> 
     <PercentPrivilegedTime> 
     <sample time="9/8/2016 12:02:51 PM" value="0.7413027" /> 
     <sample time="9/8/2016 12:02:52 PM" value="0" /> 
     <sample time="9/8/2016 12:02:53 PM" value="0" /> 
     </PercentPrivilegedTime> 
    </instance_Total> 
    </Processor> 
</Results> 

I erhalten möchten:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<Results> 
    <Memory> 
    <instance00> 
     <PageFaultsPersec> 
     <sample time="9/8/2016 12:02:51 PM" value="1401.112" /> 
     <sample time="9/8/2016 12:02:52 PM" value="242.3494" /> 
     <sample time="9/8/2016 12:02:53 PM" value="303.1362" /> 
     </PageFaultsPersec> 
     <AvailableBytes> 
     <sample time="9/8/2016 12:02:51 PM" value="1.116967E+09" /> 
     <sample time="9/8/2016 12:02:52 PM" value="1.11702E+09" /> 
     <sample time="9/8/2016 12:02:53 PM" value="1.11761E+09" /> 
     </AvailableBytes> 
    </instance00> 
    </Memory> 
    <Processor> 
    <instance_Total> 
     <PercentProcessorTime> 
     <sample time="9/8/2016 12:02:51 PM" value="18.4567" /> 
     <sample time="9/8/2016 12:02:52 PM" value="3.032005" /> 
     <sample time="9/8/2016 12:02:53 PM" value="0" /> 
     </PercentProcessorTime> 
     <PercentUserTime> 
     <sample time="9/8/2016 12:02:51 PM" value="17.04996" /> 
     <sample time="9/8/2016 12:02:52 PM" value="3.03025" /> 
     <sample time="9/8/2016 12:02:53 PM" value="0" /> 
     </PercentUserTime> 
     <PercentPrivilegedTime> 
     <sample time="9/8/2016 12:02:51 PM" value="0.7413027" /> 
     <sample time="9/8/2016 12:02:52 PM" value="0" /> 
     <sample time="9/8/2016 12:02:53 PM" value="0" /> 
     </PercentPrivilegedTime> 
    </instance_Total> 
    </Processor> 
</Results> 

Wie gesagt, ich Antworten versucht, das waren in einem Link gegeben, aber einige von ihnen funktionieren überhaupt nicht, und einige verbinden nur zwei Dateien, ohne Kindelemente richtig zu setzen .

Die XML-Dateien sind echte Dateien auf einer Festplatte, nicht nur Zeichenfolgen.

+0

Ich glaube nicht, dass dies in einer allgemeinen Art und Weise durchgeführt werden kann, ein vorhandenes XML-Dokument als gegeben, und ein Dokument zu verschmelzen, gibt es keine Möglichkeit zu wissen, ob doppelte Knoten rekursiv zusammengeführt oder als Array angehängt werden müssen. –

Antwort

1

Diese den Trick tun soll:

var one = XElement.Load("fileOne.xml"); 
var two = XElement.Load("fileTwo.xml"); 
one.Add(two.FirstNode); 
one.Save("combined.xml"); 
Verwandte Themen