Ver Mensaje Individual
  #966  
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
A ver ahora:



Código Delphi [-]
function BuscaSignatureValue(documento: string): string;
var xml: IXMLDocument;
    ANode1: IXMLNode;
    i: integer;
begin
  result := '';
  try
    xml := LoadXmlDocument(documento);
    for i := 0 to xml.DocumentElement.ChildNodes.Count - 1 do
      begin
        if xml.DocumentElement.ChildNodes.Nodes[i].NodeName = 'ds:Signature' then
          begin
            ANode1 := xml.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;
  finally
    FreeAndNil(xml);
  end;
end;


No sé por qué FindNode no encuentra "ds:Signature", de ahí el bucle buscando por el NoneName, que ahí si lo encuentra.
Responder Con Cita