Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Delphi para la web
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 09-07-2025
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que podría hacerse con algo así:
no lo he probado

Código Delphi [-]
begin
  XMLDoc := TXMLDocument.Create(Self);
  try
     with XMLDoc do
     begin
        XML.LoadFromFile('ejemplo.xml');

        // Se activa para poder utilizar el componente
        Active := True;
        Encoding := 'utf-8';
        // Caracter para indentar el fichero XML
        NodeIndentStr := #8;

        // Elimino nodos vacios
        EliminaNodosVacios(NodoDocumentElement);
  [...]    
end;

function EstaVacio(Nodo: IXMLNode) : boolean;
var
  i : integer;
  NodoHijo : IXMLNode;
  Vacio : boolean;
begin
  /// Veo si el nodo tiene hijos vacios o si tiene contenido vacio

  Result := True;
  
  if Assigned(Nodo) do
  begin
     // Recorro hijos mirando si esta vacio
     for i := 0 to Nodo.ChildNodes.Count - 1 do
     begin
        if Result then
           Result := EstaVacio(Nodo.ChildNodes[i]);
     end;
     
     // Si no quedan hijos miro si tiene contenido
     if (not Nodo.HasChildNodes) then
     begin
       if (Nodo.Text <> '') then
          Vacio := False;
     end;
  end;
end;

procedure EliminarNodosVacios(Nodo: IXMLNode) : boolean;
var
  i : integer;
begin
  if Assigned(Nodo) do
  begin
     // Recorro hijos de atras hacia adelante, borrando los vacios
     for i := Nodo.ChildNodes.Count - 1 downto 0 do
     begin
        if EstaVacio(Nodo.ChildNodes[i]) then
           Nodo.Remove(i)
        else
          EliminarNodosVacios(Nodo.ChildNodes[i]);
     end;
  end;
end;
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
IBExpress, excepción con registros vacíos pescriba Conexión con bases de datos 3 12-07-2011 11:22:36
Comprobar campos vacios o con espacios... Greco Varios 4 21-09-2007 03:57:11
DateTime con vacios CamiloU OOP 4 12-01-2006 12:37:34
no ingresar vacios o nulos.. pzala Varios 5 30-08-2005 21:40:02
consultar campos vacios noe SQL 1 21-03-2005 17:35:42


La franja horaria es GMT +2. Ahora son las 22:02:59.


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