Ver Mensaje Individual
  #3  
Antiguo 17-03-2025
Avatar de Osorio
Osorio Osorio is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 252
Reputación: 24
Osorio Va por buen camino
Recientemente hice esta función que recorre un XML y obtengo el valor que tiene en los nodos que tienen un nombre especifico. Puede ser un punto de partida.

Código Delphi [-]

function TDataModulo.XMLExtraerNodo(const XMLPar: widestring; const PNodo: String): TStringList;
var
      XMLDoc: IXMLDocument;
      Lista: TStringList;
      procedure AddNodes(ParentNode: TTreeNode; XMLNode: IXMLNode);
      var
        ChildNode: IXMLNode;
        TreeNode: TTreeNode;
      begin
        if (XMLNode.IsTextElement) then
          if XMLNode.NodeName = PNodo then
              Lista.Add(XMLNode.Text);
        ChildNode := XMLNode.ChildNodes.First;
        while ChildNode <> nil do
        begin
          AddNodes(TreeNode, ChildNode);
          ChildNode := ChildNode.NextSibling;
        end;
      end;
begin
  try
    lista:= TStringList.Create;
    Lista.Clear;
    XMLDoc := LoadXMLData(XMLPar);
    if Assigned(XMLDoc.DocumentElement) then
      AddNodes(nil, XMLDoc.DocumentElement);
  finally
    Result:= lista;
  end;
end;



Teniendo en cuenta que el XML es un texto (String) tambien se pueden hacer reemplazos de texto usando comodines.


Código Delphi [-]
    
MyXML := StringReplace(MyXML,'#COMODINUSUARIO',WideString(XMLUser), [rfReplaceAll, rfIgnoreCase]);

Saludos,
Responder Con Cita