Duvida função xmlnode
Enviado: 27 Jan 2023 19:53
Olá!
Tá pegando valores de nomes de tags errados.
A tag se chama: <vBCSTRet>446.31</vBCSTRet>
Entretanto ele pega e joga na tag: nVBC := Val( XmlNode(cTagDetItemX, "vBC") ) Veja na imagem que os valores estão no campo BCICMS e está errado, somente último item era para esta com valor.
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
FUNCTION XmlNode( cXml, cNode, lComTag )
LOCAL nInicio, nFim, cResultado := ""
hb_Default( @lComTag, .F. )
nInicio := At( "<" + cNode, cXml )
// a linha abaixo é depois de pegar o início, senão falha
IF " " $ cNode
cNode := Substr( cNode, 1, At( " ", cNode ) - 1 )
ENDIF
IF nInicio != 0
IF ! lComTag
nInicio := nInicio + Len( cNode ) + 2
IF nInicio != 1 .AND. Substr( cXml, nInicio - 1, 1 ) != ">" // Quando tem elementos no bloco
nInicio := hb_At( ">", cXml, nInicio ) + 1
ENDIF
ENDIF
nFim := hb_At( "</" + cNode + ">", cXml, nInicio )
IF nFim != 0
nFim -= 1
IF lComTag
nFim := nFim + Len( cNode ) + 3
ENDIF
cResultado := Substr( cXml, nInicio, nFim - nInicio + 1 )
ENDIF
ENDIF
RETURN cResultado
A tag se chama: <vBCSTRet>446.31</vBCSTRet>
Entretanto ele pega e joga na tag: nVBC := Val( XmlNode(cTagDetItemX, "vBC") ) Veja na imagem que os valores estão no campo BCICMS e está errado, somente último item era para esta com valor.
Saudações,
Itamar M. Lins Jr.