Ver Mensaje Individual
  #961  
Antiguo 08-07-2021
YellowStone YellowStone is offline
Miembro
 
Registrado: feb 2007
Ubicación: Adeje
Posts: 34
Reputación: 0
YellowStone Va por buen camino
Cita:
Empezado por Band Ver Mensaje
Hola keys, gracias por la respuesta.
Mi problema es que no puedo usar el Txmldocument de momento
No sé si es problema del Msxml2.DOMDocument.6.0, porque así Código Delphi [-]Documento.DocumentElement.ChildNodes[4].ChildNodes[1].Text;

tampoco consigo referenciarlo.

Seguiré investigando.
Aparte del código proporcionado por Keys, yo lo he conseguido de la siguiente manera (código Delphi 2007):

Código Delphi [-]
function BuscaSignatureValue(documento: IXMLDocument): string;
var ANode1: IXMLNode;
    i: integer;
begin
  result := '';
  for i := 0 to documento.DocumentElement.ChildNodes.Count - 1 do
    begin
      if documento.DocumentElement.ChildNodes.Nodes[i].NodeName = 'ds:Signature' then
        begin
          ANode1 := documento.DocumentElement.ChildNodes.Nodes[i];
          if ANode1.ChildNodes.FindNode('ds:SignatureValue') <> nil then
            begin
              result := ANode1.ChildNodes['ds:SignatureValue'].Text;
              result := AnsiReplaceStr(result, #10, '');               // Quitamos los saltos de línea del nodo
              result := Copy(Trim(result), 1, 100);                    // Cogemos los 100 primeros caracteres
              break;
            end;
        end;
    end;
end;

La solución de Keys es estupenda, pero con el inconveniente de que si en algún momento se cambia o se añade algún nodo en el fichero, va a dejar de ser funcional.

Última edición por Neftali [Germán.Estévez] fecha: 08-07-2021 a las 11:59:27. Razón: Añadir TAGs al código Delphi
Responder Con Cita