fatturaelettronicaphp / FatturaElettronica

Pacchetto PHP per la lettura, la generazione e la validazione della fattura elettronica, sia per la Pubblica Amministrazione che tra privati (B2B)
https://fatturaelettronicaphp.github.io/FatturaElettronica
MIT License
40 stars 14 forks source link

Convertire un file aperto in stringa XML #35

Closed itajackass closed 2 years ago

itajackass commented 2 years ago

Ciao ti chiedo se esiste già una funzione per aprire un file xml (o p7m ovviamente) e trasformare l'istanza in una stringa XML.

Non penso di aver trovato nulla spulciando la documentazione.

Il mio obiettivo è quello di aprire una file di fattura elettronica e lasciare all'utente la possibilità diu visualizzarlo applicandogli un foglio di stile a scelta tra quello ufficiale dell' AdE oppure uno personalizzato più leggibile.

Attualmente utilizzo varie funzioni trovate online ma sto uniformando il tutto per usare solo la tua libreria...

In pratica dopo aver trasformato il file in una stringa, faccio così:

$XML = new DOMDocument();
$XML->loadXML( $fileToView ); //<---------------- $fileToView è il contenuto del file convertito in stringa
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
if ( $type == "sdi" ) { //<------ scelta del formato di visualizzazione
    if ( $formatoTrasmissione == "FPR12" ) {
        $XSL->load( ROOTURL . 'stylesheets_xml_fe/sdi/' . 'fatturaordinaria.xsl' );
    } else {
        $XSL->load( ROOTURL . 'stylesheets_xml_fe/sdi/' . 'fatturapa.xsl' );
    }
} else {
    // custom
    $XSL->load( ROOTURL . 'stylesheets_xml_fe/custom/' . 'custom.xsl' );
}

$xslt->importStylesheet( $XSL );
print $xslt->transformToXML( $XML );

Ti chiedo quindi se hai una funzione che trasforma l'instanza di un file aperto, in: $fileToView (cioè una stringa).

Grazie mille

itajackass commented 2 years ago

Come non detto, ho risolto con:

$xml = $digitalDocument->serialize();
$string = $xml->asXML();
Skullbock commented 2 years ago

Ciao, si esatto. L'unica nota su questo è che il documento viene letto, trasformato nella sua astrazione in php e riscritto. Dai nostri test questo produce sempre il risultato identico al l'originale, ma è una cosa da sapere sicuramente.