2016-09-14 1 views
0

mit LINQ, ich habe folgend in XDocumentXMLDocument: Lesen Sie XDocument und Inhalte in andere XDocument (LINQ) (C#)

machine2.config
<appSettings> 
<add key="FreitRaterHelpLoc" value="" /> 
<add key="FreitRaterWebHome" value="http://GPGBYTOPSPL12/" /> 
<add key="FreitRaterDefaultSession" value="" /> 
<add key="FreitRaterTransferMode" value="Buffered" /> 
<add key="FreitRaterMaxMsgSize" value="524288" /> 
<add key="FreitRaterMaxArray" value="16384" /> 
<add key="FreitRaterMaxString" value="32768" /> 
<add key="FreitRaterSvcTimeout" value="60" /> 
</appSettings> 

und ich brauche es an einem bestimmten Ort in XDocument zu bekommen machine.config

Ich hatte zuerst die Elemente manuell hartcodiert, und XPathSelectElement(). AddAfterSelf() funktionierte schön, um den xml-klumpen, wo ich es wollte. Aber ich muss es aus der Datei lesen, damit es mit einer schnellen Bearbeitung des Dokuments geändert werden kann. Jetzt, mit diesem Code

XDocument doc = XDocument.Load("machine.config"); 

XDocument AppSettings = XDocument.Load("machine2.config"); 
string content = AppSettings.ToString(); 

doc.XPathSelectElement("configuration/configSections").AddAfterSelf(content); //need it to insert after </configSections> 

Ich bin in der Lage, es zu addieren, aber es in richtigen Format kopiert nicht. Statt in machine.config ich

</configSections>&lt;appSettings&gt;&lt;add key="FreitRaterHelpLoc" //etc 

erhalten, wenn sollte es

sein
</configSections> 
<appSettings> 
... 

Auf jeden Fall bin ich ziemlich verloren also, wenn jemand eine Möglichkeit kennt dies von einer Datei in dem anderen in der richtigen zu bekommen Format ich würde es so schätzen.

Antwort

0

Code ändern zu

XDocument doc = XDocument.Load("machine.config"); 
XElement AppSettings = XElement.Load("machine2.config"); //NB: not XDocument 
doc.XPathSelectElement("configuration/configSections").AddAfterSelf(AppSettings); 
doc.Save("machine.config"); //Of course I'm sure you had this line somewhere 
+0

arbeitete wie ein Charme, nicht zustande denke, es als ein Element zu lesen. Danke :) –

+0

Es ist mir ein Vergnügen, @ M.Doe Sie können jetzt die Antwort abstimmen. –