Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   XML no salta linea (https://www.clubdelphi.com/foros/showthread.php?t=93944)

oscarac 21-05-2019 02:05:17

XML no salta linea
 
estoy creando un XML

Código Delphi [-]
  
procedure TfrmEmisionFactura.GenerarClick(Sender: TObject);
var
  tDocXmlNombre: string;
  XmlSunat: IXMLDOCUMENT;
  nMaster, nPrimero, nSegundo, nTercero, nCuarto, nQuinto, nAtributo, nItem,
    nItemSub, nCDATA: IXMLNODE;
    _archivo :string;
begin
  XmlSunat := NewXMLDocument;
  XmlSunat.Version := '1.0';
  XmlSunat.Encoding := 'UTF-8';
  XmlSunat.StandAlone := 'no';
  XmlSunat.Active := True;
  XmlSunat.Options := [doNodeAutoIndent];

 nPrimero := nMaster.AddChild('cbc:ProfileId');
  nPrimero.Attributes['schemeName'] := 'SUNAT:Identificador de Tipo de Operación';
  nPrimero.Attributes['schemeAgencyName'] := 'PE:SUNAT';
  nPrimero.Attributes['schemeURI'] := 'urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo17';
  nPrimero.Text := '0101';

XmlSunat.SaveToFile(_archivo);

pero cuando veo el archivo generado (que por cierto esta tomando buena forma)
no salta linea a pesar de que tiene XmlSunat.Options := [doNodeAutoIndent];

alguien sabe que sucede?

manelb 21-05-2019 07:35:52

Estas son las opciones que yo pongo y la indentación es correcta...
Código Delphi [-]
    Options = [doNodeAutoCreate, doNodeAutoIndent, doAttrNull, doAutoPrefix, doNamespaceDecl]

Aunque tal y como te comente en otro hilo, jo uso un TXMLDocument

Saludos

oscarac 21-05-2019 17:01:43

cual es la diferencia entre IXMLDocument y TXMLDocument ??

manelb 22-05-2019 07:58:15

Pues no sabría ahora yo argumentarte las diferencias y bondades de uno y otro....

Mira esto por ejemplo
Cita:

Delphi es un lenguaje que utiliza la herencia simple al contrario de C++ que permite herencia múltiple. Esto significa que cualquier clase sólo puede heredar de una clase padre. Por lo tanto, si queremos que una clase herede métodos de más de una clase entonces hay que utilizar interfaces (interface).

Una interfaz es como una clase que contiene sólo métodos abstractos (métodos sin implentación) definiendo limpiamente su funcionalidad. Por convención, los nombres de las interfaces comienzan con la letra mayúscula I.
Fíjate que en mi ejemplo del otro hilo, realmente estás utilizando una interface, y que el TXMLDocument creo que solo sirve como contenedor del xml que se va generando.

Saludos


La franja horaria es GMT +2. Ahora son las 17:04:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi