XML DocumentElement komplett kopieren?



  • Hi zusammen,

    schon wieder ich, und schon wieder eine Frage 🙂

    Bin gerade dabei, mehrere XML Dateien in eine Datei zusammen zu führen.
    Also das DocumentElement jeder Datei als ChildNode in eine neue zu kopieren.

    PseudoCode:

    //nDoc = neuDatei
    while( alteDatei ) // Anzahl > 1
    {
    _di_IXMLDocument oldDatei = LoadXMLDocument( alteDatei);
    nDoc->DocumentElement->Add( oldDatei->DocumentElement );
    ...
    }

    Hoffe es ist soweit verständlich?!

    Oder muss ich wirklich alle Nodes, ChildNodes, ... einzeln einlesen und dann wieder schreiben? Genau das will ich - auch aus Performancegründen - vermeiden.

    thx schonmal & grüssle 🙂



  • Keiner? Ok, dann eben ich 🙂

    int i;
    		UnicodeString jFile;
    
    		xmlDoc = new TXMLDocument( "" );
    		xmlDoc->Options = xmlDoc->Options << doNodeAutoIndent;
    		xmlDoc->Active = true;
    		xmlDoc->Encoding = "UTF-8";
    
            _di_IXMLDocument Doc2Join;
    		_di_IXMLNode deNode, dataNode;
    
    		xmlDoc->DocumentElement = xmlDoc->CreateElement( L"DATA", "" );
    		dataNode = xmlDoc->DocumentElement;
    
    		for( i = 0; i < lvwFileList->Items->Count; i++ )
    		{
    			if( lvwFileList->Items->Item[i]->Checked )
    			{
    				jFile = jDir + lvwFileList->Items->Item[i]->Caption;
    
    				Doc2Join = LoadXMLDocument( jFile );
    				deNode = Doc2Join->DocumentElement;
    				dataNode->ChildNodes->Add( deNode->CloneNode(true) );
    			}
    		}
    		xmlDoc->SaveToFile( edtNewFileName->Text );
    

    grüssle 🙂


Anmelden zum Antworten