FatturaElettronica / FatturaElettronica.NET

Fattura Elettronica per le aziende e la Pubblica Amministrazione Italiana
https://fatturaelettronicaopensource.org
Other
187 stars 65 forks source link

Errore in deserializzazione #158

Closed IrvinDominin closed 5 years ago

IrvinDominin commented 5 years ago

In deserializzazione delle fattura elettronica allegata (i dati sono stati resi "dummy") viene restituito l'errore:

"Element" è un XmlNodeType non valido. Riga 2, posizione 470

Il codice di deserializzazione è il seguente:

        var fattura = Fattura.CreateInstance(Instance.Privati);

        try
        {
            using (var r = XmlReader.Create(new MemoryStream(File.ReadAllBytes("C:\\Users\\dominin\\Desktop\\ErroreInDeserialize.xml")), new XmlReaderSettings { IgnoreWhitespace = true, IgnoreComments = true }))
            {
                fattura.ReadXml(r);
            }
        }
        catch (Exception ex)
        {
        }

Sono presenti diverse fatture che restituiscono l'errore segnalato, validando con AdE e altri validatori risultano corrette. ErroreInDeserialize.zip

gminutillo commented 5 years ago

l'eccezione si verifica nel metodo ReadXml di BaseClassSerializable. credo sia dovuto al fatto che la processing instruction: <?xml-stylesheet type="text/xsl" href="fatturapa_v1.2.xsl"?> è inserita dopo l'apertura del tag <p:FatturaElettronica> e prima dell'apertura del tag <FatturaElettronicaHeader>

gminutillo commented 5 years ago

se aggiungi IgnoreProcessingInstructions = true cioè new XmlReaderSettings { IgnoreWhitespace = true, IgnoreComments = true, IgnoreProcessingInstructions = true } dovrebbe leggere il file correttamente