Fiz uma modificação na rotina LERXML pois estava dando erro durante a importação da nota em alguns arquivos XML. A modificação é pequena e não altera em nada a lógica da aplicação. Segue abaixo o código:
Try
nItem := StrToInt(copy(ItensTemp,Pos('nItem=',ItensTemp) + 7,Pos('">',ItensTemp)-(Pos('nItem=',ItensTemp)+7)));
Except
nItem := StrToInt(StringReplace(copy(ItensTemp,Pos('nItem=',ItensTemp)+7,Pos('">',ItensTemp)-(Pos('nItem=',ItensTemp)+7)), '" xmlns="http://www.portalfiscal.inf.br/nfe', '', [rfReplaceAll, rfIgnoreCase]));
end; // Coloquei esse try except
Itens := StringReplace(Itens, ItensTemp, '',[]);
ItensTemp := copy(Itens,Pos('',Itens)+6)-Pos('