Get undefined error acessing tag after convert xml to object
joweste opened this issue · 1 comments
joweste commented
Describe the bug
I am getting the value of tag "ans:detalhesGuia" but I get an undefined error.
An important point is that "ans:detalhesGuia" is optional and sometimes doesn´'t exist into xml.
To Reproduce
let xmlStr;
const { convert } = require("xmlbuilder2");
const fs = require("fs");
xmlStr = fs.readFileSync("./dem_brad_demonstrativo.xml", {
encoding: "utf8",
flag: "r",
});
const obj = convert(xmlStr, { format: "object" });
const teste = obj["ans:mensagemTISS"]["ans:operadoraParaPrestador"][
"ans:demonstrativosRetorno"
]["ans:demonstrativoAnaliseConta"]["ans:dadosConta"]["ans:dadosProtocolo"][
"ans:relacaoGuias"
]["ans:detalhesGuia"];
console.log(teste);
I get the next error:
TypeError: Cannot read properties of undefined (reading 'ans:demonstrativosRetorno')
Here is the xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<ans:mensagemTISS xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ans="http://www.ans.gov.br/padroes/tiss/schemas">
<ans:cabecalho>
<ans:identificacaoTransacao>
<ans:tipoTransacao>DEMONSTRATIVO_ANALISE_CONTA</ans:tipoTransacao>
<ans:sequencialTransacao>0</ans:sequencialTransacao>
<ans:dataRegistroTransacao>2021-10-22</ans:dataRegistroTransacao>
<ans:horaRegistroTransacao>09:07:38</ans:horaRegistroTransacao>
</ans:identificacaoTransacao>
<ans:origem>
<ans:registroANS>005711</ans:registroANS>
</ans:origem>
<ans:destino>
<ans:identificacaoPrestador>
<ans:codigoPrestadorNaOperadora>00000000967173</ans:codigoPrestadorNaOperadora>
</ans:identificacaoPrestador>
</ans:destino>
<ans:Padrao>3.05.00</ans:Padrao>
</ans:cabecalho>
<ans:operadoraParaPrestador>
<ans:demonstrativosRetorno>
<ans:demonstrativoAnaliseConta>
<ans:cabecalhoDemonstrativo>
<ans:registroANS>005711</ans:registroANS>
<ans:numeroDemonstrativo>242407685</ans:numeroDemonstrativo>
<ans:nomeOperadora>Bradesco Saude S.A</ans:nomeOperadora>
<ans:numeroCNPJ>92693118000160</ans:numeroCNPJ>
<ans:dataEmissao>2021-10-22</ans:dataEmissao>
</ans:cabecalhoDemonstrativo>
<ans:dadosPrestador>
<ans:dadosContratado>
<ans:codigoPrestadorNaOperadora>967173</ans:codigoPrestadorNaOperadora>
<ans:nomeContratado>CLINICA ORTOPEDICA BANGU LTDA</ans:nomeContratado>
</ans:dadosContratado>
<ans:CNES>3347028</ans:CNES>
</ans:dadosPrestador>
<ans:dadosConta>
<ans:dadosProtocolo>
<ans:numeroLotePrestador>581255</ans:numeroLotePrestador>
<ans:numeroProtocolo>340081870219</ans:numeroProtocolo>
<ans:dataProtocolo>2021-07-28</ans:dataProtocolo>
<ans:situacaoProtocolo>6</ans:situacaoProtocolo>
<ans:relacaoGuias>
<ans:numeroGuiaPrestador>986624600</ans:numeroGuiaPrestador>
<ans:numeroGuiaOperadora>24000000000715379112</ans:numeroGuiaOperadora>
<ans:nomeBeneficiario>RODRIGO DE PAULA RODRIGUES</ans:nomeBeneficiario>
<ans:numeroCarteira>773232334243005</ans:numeroCarteira>
<ans:dataInicioFat>0001-01-01</ans:dataInicioFat>
<ans:horaInicioFat>01:01:01</ans:horaInicioFat>
<ans:dataFimFat>0001-01-01</ans:dataFimFat>
<ans:horaFimFat>01:01:01</ans:horaFimFat>
<ans:situacaoGuia>6</ans:situacaoGuia>
<ans:detalhesGuia>
<ans:sequencialItem>1</ans:sequencialItem>
<ans:dataRealizacao>2021-07-13</ans:dataRealizacao>
<ans:procedimento>
<ans:codigoTabela>22</ans:codigoTabela>
<ans:codigoProcedimento>40802035</ans:codigoProcedimento>
<ans:descricaoProcedimento>RX - COLUNA DORSAL - 2 INCIDENCIAS</ans:descricaoProcedimento>
</ans:procedimento>
<ans:grauParticipacao>12</ans:grauParticipacao>
<ans:valorInformado>58.29</ans:valorInformado>
<ans:qtdExecutada>1.0</ans:qtdExecutada>
<ans:valorProcessado>49.36</ans:valorProcessado>
<ans:valorLiberado>49.36</ans:valorLiberado>
<ans:relacaoGlosa>
<ans:valorGlosa>8.93</ans:valorGlosa>
<ans:tipoGlosa>1705</ans:tipoGlosa>
</ans:relacaoGlosa>
</ans:detalhesGuia>
<ans:valorInformadoGuia>127.51</ans:valorInformadoGuia>
<ans:valorProcessadoGuia>118.58</ans:valorProcessadoGuia>
<ans:valorLiberadoGuia>118.58</ans:valorLiberadoGuia>
<ans:valorGlosaGuia>8.93</ans:valorGlosaGuia>
</ans:relacaoGuias>
<ans:relacaoGuias>
<ans:numeroGuiaPrestador>986663698</ans:numeroGuiaPrestador>
<ans:numeroGuiaOperadora>24000000000715379113</ans:numeroGuiaOperadora>
<ans:nomeBeneficiario>IONE AGUIAR DE OLIVEIRA</ans:nomeBeneficiario>
<ans:numeroCarteira>952480015660013</ans:numeroCarteira>
<ans:dataInicioFat>0001-01-01</ans:dataInicioFat>
<ans:horaInicioFat>01:01:01</ans:horaInicioFat>
<ans:dataFimFat>0001-01-01</ans:dataFimFat>
<ans:horaFimFat>01:01:01</ans:horaFimFat>
<ans:situacaoGuia>6</ans:situacaoGuia>
<ans:valorInformadoGuia>88.12</ans:valorInformadoGuia>
<ans:valorProcessadoGuia>88.12</ans:valorProcessadoGuia>
<ans:valorLiberadoGuia>88.12</ans:valorLiberadoGuia>
<ans:valorGlosaGuia>0.0</ans:valorGlosaGuia>
</ans:relacaoGuias>
......
.....
Expected behavior
I´d like to get the values of "ans:detalhesGuia" that exist.
Version:
- node.js: [16.9.1]
- xmlbuilder2 [3.0.2]
Additional context
Add any other context about the problem here.
joweste commented
My mistake