• 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
XML e Fattura Elettronica
#2
Passo avanti...

Invece di fare:
class function TeiInvoiceFactory.InternalNewInvoiceFromString(const AStringXML: String): IeiInvoiceEx;
var
LEpuratedStringXML: String;
begin
LEpuratedStringXML := StringReplace(AStringXML, '<p:', '<', [rfReplaceAll, rfIgnoreCase]);
LEpuratedStringXML := StringReplace(LEpuratedStringXML, '</p:', '</', [rfReplaceAll, rfIgnoreCase]);
Result := LoadXMLData(LEpuratedStringXML).GetDocBinding('FatturaElettronica', TeiInvoiceEx, TargetNamespace) as IeiInvoiceEx;
end;

Faccio:
class function TeiInvoiceFactory.InternalNewInvoiceFromString(const AStringXML: String): IeiInvoiceEx;
var
LDocument: IXMLDocument;
LNodeElement: IXMLNode;
begin
LDocument := TXMLDocument.Create(nil);
LDocument.LoadFromXML(AStringXML);
{ Find a specific node. }
LNodeElement := LDocument.ChildNodes.FindNode('FatturaElettronica');
Result := LoadXMLData(AStringXML).GetDocBinding('FatturaElettronica', TeiInvoiceEx, LNodeElement.NamespaceURI) as IeiInvoiceEx;
end;

ed il nodo lo leggo, il problema ora è che non riesco a leggere nel namespace corretto i sottonodi:
procedure TXMLFatturaElettronicaType.AfterConstruction;
begin
RegisterChildNode( 'FatturaElettronicaHeader', TXMLFatturaElettronicaHeaderType);
RegisterChildNode('FatturaElettronicaBody', TXMLFatturaElettronicaBodyType);
RegisterChildNode('Signature', TXMLSignatureType_ds);
FFatturaElettronicaBody := CreateCollection(TXMLFatturaElettronicaBodyTypeList, IXMLFatturaElettronicaBodyType,
'FatturaElettronicaBody') as IXMLFatturaElettronicaBodyTypeList;
inherited;
end;

Vorrei fare anche qui lo stesso trucco, ma non riesco a trovare l'XML da cui fare la ricerca generica del nodo!!!
  Cita messaggio


Messaggi in questa discussione
XML e Fattura Elettronica - da Fabiano Paolini - 02-04-2019, 10:04 AM
RE: XML e Fattura Elettronica - da Fabiano Paolini - 02-06-2019, 12:50 PM

Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)