//*********
//
// il nome FILE deve essere IT[PARTITAIVA]_[CONTATORE]  CONTATORE=CHAR(5) ES: 00001
//
//*********
$xml=new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><p:FatturaElettronica versione="FPR12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd"></p:FatturaElettronica>',LIBXML_NOERROR, FALSE, 'p', FALSE);
// *************
// HEADER
// *************
$FatturaElettronicaHeader = $xml->addChild('FatturaElettronicaHeader', '' , ''); //il namespace ora sarà  xmlns="" che verrà rimosso alla fine
    $DatiTrasmissione = $FatturaElettronicaHeader->addChild('DatiTrasmissione');
        $IdTrasmittente = $DatiTrasmissione->addChild('IdTrasmittente');
        $IdPaese = $IdTrasmittente->addChild('IdPaese','IT');
        $IdCodice =$IdTrasmittente->addChild('IdCodice','[PARTITAIVA]');
        $ProgressivoInvio = $DatiTrasmissione->addChild('ProgressivoInvio', '[PROGRESSIVO]'); // cambiare: formato alfanumerico; lunghezza massima di 10 caratteri.
        $FormatoTrasmissione = $DatiTrasmissione->addChild('FormatoTrasmissione', 'FPR12'); //cambiare
        $CodiceDestinatario  = $DatiTrasmissione->addChild('CodiceDestinatario', '0000000'); //cambiare  char(6) PA oppure char(7) altri
    //    $PECDestinatario = $DatiTrasmissione->addChild('PECDestinatario');
    $CedentePrestatore = $FatturaElettronicaHeader->addChild('CedentePrestatore');
        $DatiAnagrafici = $CedentePrestatore->addChild('DatiAnagrafici');
            $IdFiscaleIVA = $DatiAnagrafici->addChild('IdFiscaleIVA');
                    $IdPaese  = $IdFiscaleIVA->addChild('IdPaese', 'IT');
                    $IdCodice = $IdFiscaleIVA->addChild('IdCodice', '[PARTITAIVA]');
            $Anagrafica = $DatiAnagrafici->addChild('Anagrafica');
                    $Denominazione = $Anagrafica->addChild('Denominazione', '[RAGIONE SOCIALE]');
            $RegimeFiscale = $DatiAnagrafici->addChild('RegimeFiscale', '[REGIMEFISCALE]'); //verificare
        $Sede = $CedentePrestatore->addChild('Sede');
            $Indirizzo = $Sede->addChild('Indirizzo', '[INDIRIZZO]');
            $CAP = $Sede->addChild('CAP', '[CAP]');
            $Comune =  $Sede->addChild('Comune' , '[COMUNE]');
            $Provincia = $Sede->addChild('Provincia', '[PROV]');
            $Nazione = $Sede->addChild('Nazione', 'IT');
       
       
    $CessionarioCommittente = $FatturaElettronicaHeader->addChild('CessionarioCommittente');
        $DatiAnagrafici = $CessionarioCommittente->addChild('DatiAnagrafici');
            $CodiceFiscale = $DatiAnagrafici->addChild('CodiceFiscale', $pivacf);
            $Anagrafica = $DatiAnagrafici->addChild('Anagrafica');
                $Denominazione = $Anagrafica ->addChild('Denominazione', $cognomenome);
        $Sede = $CessionarioCommittente->addChild('Sede');
            $Indir = $Sede->addChild('Indirizzo', $Indirizzo);
            $CAP_2 = $Sede->addChild('CAP', $cap);
            $Comune = $Sede->addChild('Comune', $citta);
            $Provincia =$Sede->addChild('Provincia', $prov);
            $Nazione_2 = $Sede->addChild('Nazione', $nazione); // controllare se italiano o no!!!!
// *************
// FINE HEADER
// *************
// *************      
// BODY
// *************
//TESTATA BODY
   
$FatturaElettronicaBody = $xml->addChild('FatturaElettronicaBody', '' , '');
    $DatiGenerali = $FatturaElettronicaBody->addChild('DatiGenerali');
        $DatiGeneraliDocumento = $DatiGenerali->addChild('DatiGeneraliDocumento');
            //TipoDocumento:
            //TD01 Fattura
            //TD02 Acconto/Anticipo su fattura
            //TD03 Acconto/Anticipo su parcella
            //TD04 Nota di Credito
            //TD05 Nota di Debito
            //TD06 Parcella
            //TD20 Autofattura  
            $TipoDocumento = $DatiGeneraliDocumento->addChild('TipoDocumento', '[TIPODOCUMENTO]'); //modificare
            $Divisa = $DatiGeneraliDocumento->addChild('Divisa','EUR');
            $Data = $DatiGeneraliDocumento->addChild('Data', '[DATAFATTURA]');
            $Numero = $DatiGeneraliDocumento->addChild('Numero', '[N_FATTURA]');
            $DatiBollo = $DatiGeneraliDocumento->addChild('DatiBollo');
                $BolloVirtuale = $DatiBollo->addChild('BolloVirtuale', 'SI');
                $ImportoBollo = $DatiBollo->addChild('ImportoBollo', '[BOLLO]'); // usare  number_format($bollo, 2);
   
// DETTAGLIO FATTURA
$DatiBeniServizi = $FatturaElettronicaBody->addChild('DatiBeniServizi');
// *************  
//RIGHE FATTURA  
//BLOCCO DA RIPETERE PER OGNI RIGA
// *************
        $DettaglioLinee = $DatiBeniServizi->addChild('DettaglioLinee');
            $NumeroLinea = $DettaglioLinee->addChild('NumeroLinea', '[N_RIGA]');
            $Descrizione = $DettaglioLinee->addChild('Descrizione', 'DESCRIZIONE]');
            $Quantita = $DettaglioLinee->addChild('Quantita', '[QTA]'); //[number_format($qta, 2);
            $PrezzoUnitario = $DettaglioLinee->addChild('PrezzoUnitario', '[PREZZO_U]'); // number_format($prezzo, 2);
            $PrezzoTotale = $DettaglioLinee->addChild('PrezzoTotale', '[TOTALE_RIGA]'); //number_format($totale, 2));
            $AliquotaIVA = $DettaglioLinee->addChild('AliquotaIVA', '0.00');
            //Natura:
            //N1 escluse ex art.15
            //N2 non soggette
            //N3 non imponibili
            //N4 esenti
            //N5 regime del margine / IVA non esposta in fattura
            //N6 inversione contabile (per le operazioni in reverse charge
            //   ovvero nei casi di autofatturazione per acquisti extra UE
            //   di servizi ovvero per importazioni di beni nei soli casi
            //   previsti)
            //N7 IVA assolta in altro stato UE (vendite a distanza ex art.
            //   40 commi 3 e 4 e art. 41 comma 1 lett. b, DL 331/93;
            //   prestazione di servizi di telecomunicazioni, teleradiodiffusione
            //   ed elettronici ex art. 7-sexies lett. f, g,
            //   DPR 633/72 e art. 74-sexies, DPR 633/72)
            $Natura = $DettaglioLinee->addChild('Natura', 'N4');
// *************
// FINE RIGHE/A
// *************
// *************
//RIEPILOGO      
// *************      
$DatiRiepilogo = $DatiBeniServizi->addChild('DatiRiepilogo');
    $AliquotaIVA = $DatiRiepilogo->addChild('AliquotaIVA', '0.00');
    $Natura = $DatiRiepilogo->addChild('Natura', 'N4');
    $ImponibileImporto = $DatiRiepilogo->addChild('ImponibileImporto', '[IMPONIBILE]'); //number_format(($cassain-$bollo), 2));
    $Imposta = $DatiRiepilogo->addChild('Imposta', '0.00');
    $RiferimentoNormativo=$DatiRiepilogo->addChild('RiferimentoNormativo', 'Esente da IVA ai sensi dell\'art. 10 comma 1,  n.18 del DPR 633/72 e successive modifiche');
       
// FINE DETTAGLIO FATTURA
// *************
// FINE BODY
// *************
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML(preg_replace('/xmlns=""\s?/', '', $xml->asXML()));
$dom->save('[PERCORSO]/[NOMEFILE_CONTATORE].xml');