2017-05-13 6 views
2

Ich generierte eine XML-Datei über API-Aufruf dann habe ich versucht, die Datei mit XML-Quellkomponente in ssis zu lesen, aber es ist nur lesbare Datensätze mit Ausnahme aller Daten in Datei enthält .Hinzufügen von Knoten am Anfang und Ende der vorhandenen XML-Datei mit C#

Hier ist meine Datei

<?XML version 1.0 > 
<ABC> 
     <a>info<a/> 
<ABC/> 

Aber ich wie unten dann Datei wollen nur kann ich leicht Datei mit Komponente lesen Wir können die Datei manuell für einzelne Datei manipulieren, aber nicht für tausend Dateien

<?XML Version 1.0> 
<X> 
    <ABC> 
     <a>info <a/> 
    <ABC/> 
</X> 

Wie fügt man den Knoten 'X' zur vorhandenen Datei hinzu?

Ich bin nicht viel Exposition auf .Net-Technologie.

Bitte helfen Sie mir frühestens von Zeit.

Danke Kiran Kumar

Antwort

1

xml linq Mit

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string xml = 
       "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + 
        "<ABC>" + 
         "<a>info</a>" + 
        "</ABC>"; 
      XDocument doc = XDocument.Parse(xml); 

      XElement root = doc.Root; 
      root.ReplaceWith(new XElement("X", root)); 
     } 
    } 
} 
0

Versuchen API-Streaming.

using (var reader = XmlReader.Create("test.xml")) 
using (var writer = XmlWriter.Create("test2.xml")) 
{ 
    writer.WriteStartElement("X"); 
    reader.MoveToContent(); 
    writer.WriteNode(reader.ReadSubtree(), true); 
    writer.WriteEndElement(); 
} 

Dieser Ansatz behandelt XML ohne übermäßigen Speicherverbrauch.

Diese Methode ermöglicht es außerdem, XML im laufenden Betrieb zu modifizieren, indem es aus dem Eingabe-API-Stream abgerufen und in den Ausgabestream geschrieben wird.

using (var reader = XmlReader.Create(inputStream)) 
using (var writer = XmlWriter.Create(outputStream)) 
Verwandte Themen