Exemplo n.º 1
0
HBufC8* CNcdRequestBase::ExternalizeL() 
    {
    DLTRACEIN((""));
    
    const TXmlEngSerializationOptions KSerializationOptions = 
        TXmlEngSerializationOptions( 0x09, KSerializationOptionUtf8 );
    
#ifndef RD_XML_ENGINE_API_CHANGE
    TXmlEngString str;
    iDocument.SaveL(str, iRoot, KSerializationOptions);
    
    str.PushL();
    
    HBufC8* buf = HBufC8::NewL( str.Size() );
    *buf = str.PtrC8();
   
    // Free the original C-string
    CleanupStack::PopAndDestroy();        
#else
    
    RBuf8 rbuf;
    iDocument.SaveL( rbuf, iRoot, KSerializationOptions );

    CleanupClosePushL( rbuf );
    HBufC8* buf = rbuf.AllocL();
    CleanupStack::PopAndDestroy();  // rbuf

#endif
    
    DLTRACEOUT((""));
    return buf;
    }
// -----------------------------------------------------------------------------
// CUpnpXmlContentFilter::SerializeLC
// -----------------------------------------------------------------------------
//     
HBufC8* CUpnpXmlContentFilter::SerializeLC(RXmlEngDocument& aDoc, TXmlEngElement& aElement )
    {
    CUpnpXmlContentFilter* nodefilter = new (ELeave) CUpnpXmlContentFilter();
    CleanupStack::PushL(nodefilter);
    
    RBuf8 buf;
	    CleanupClosePushL( buf );               

    TXmlEngSerializationOptions options(  TXmlEngSerializationOptions::KOptionOmitXMLDeclaration
                          | TXmlEngSerializationOptions::KOptionIncludeNsPrefixes);	        			  
	options.SetNodeFilter(nodefilter);	    	  
    aDoc.SaveL( buf, aElement, options );
    
    HBufC8* res = buf.AllocL();
    CleanupStack::PopAndDestroy( &buf );
    CleanupStack::PopAndDestroy( nodefilter );
    CleanupStack::PushL(res);
    
    return res;        
    }