extractBasicInfo static method
Extrai informações resumidas da NFSe de forma rápida.
Parâmetros:
xmlString: String contendo o XML da NFSe.
Retorno:
- Um
Map<String, String?>com informações básicas da NFSe.
Exemplo:
final info = NfseParser.extractBasicInfo(xmlString);
print('Número: ${info['numero']}');
print('Valor: ${info['valor']}');
Implementation
static Map<String, String?> extractBasicInfo(String xmlString) {
try {
final document = XmlDocument.parse(xmlString);
if (!_isNfseNacional(document)) {
return {};
}
// Procura infDPS em qualquer profundidade
final infDPSElements = document.findAllElements('infDPS');
if (infDPSElements.isEmpty) {
return {};
}
final infDPS = infDPSElements.first;
return {
'numero': _getElementText(infDPS, 'nDPS'),
'serie': _getElementText(infDPS, 'serie'),
'dataEmissao': _getElementText(infDPS, 'dhEmi'),
'dataCompetencia': _getElementText(infDPS, 'dCompet'),
'cnpjPrestador': _getElementText(infDPS, 'CNPJ'),
'valorServico': _getElementText(
infDPS.findAllElements('vServ').isNotEmpty
? infDPS.findAllElements('vServ').first.parent as XmlElement
: infDPS,
'vServ',
),
'descricaoServico': _getElementText(
infDPS.findAllElements('xDescServ').isNotEmpty
? infDPS.findAllElements('xDescServ').first.parent as XmlElement
: infDPS,
'xDescServ',
),
};
} catch (e) {
return {};
}
}