Estou com o mesmo problema com o ICMS.
Quando empresa simples nacional ele apresenta 00 para o CST, contudo, não exite a TAG.
O que fiz foi verificar se a empresa era simples nacional ou não para então decidir qual campo pegar (CST ou CSOSN).
if CRTToStr(Emit.CRT)<>'3' then begin cds_produtoscsosn.AsString:= OrigToStr(det.Items.Imposto.ICMS.orig)+csosnICMSToStr(det.Items.Imposto.ICMS.CSosn); end else begin cds_produtoscst.AsString:= OrigToStr(det.Items.Imposto.ICMS.orig)+cstICMSToStr(det.Items.Imposto.ICMS.cst); end;
Contudo, existe uma forma de identificar se o campo está ou não informado no XML?