Hola Walter.
No pierdas el tiempo intentando utilizar el XmlCursor xq no sirve p estos
xml.
Tenes varias formas de sacar el contenido de un xml. Podes hacerlo de una
forma simple, donde te muestro procesando parte del xml devuelto x Afip y
grabándolo en un archivo, aunque podrías recorrerlo de la misma forma y
guardar los valores en un objeto Custom.
lcrespuesta = lohttp.responsetext
lnposi = AT('<FeCabResp>', lcrespuesta)+11
lnposf = AT('</FeCabResp>', lcrespuesta)
lccabecera = SUBSTR(lcrespuesta, lnposi, lnposf-lnposi)
SELECT CaeCab
FOR lnparte = 1 TO GETWORDCOUNT(lccabecera, '<')
DO CASE
CASE GETWORDNUM(GETWORDNUM(lccabecera, lnparte, '<'), 1,
'>')='Cuit'
APPEND BLANK
REPLACE cuit WITH GETWORDNUM(GETWORDNUM(lccabecera, lnparte,
'<'), 2, '>')
CASE GETWORDNUM(GETWORDNUM(lccabecera, lnparte, '<'), 1,
'>')='PtoVta'
REPLACE ptovta WITH VAL(GETWORDNUM(GETWORDNUM(lccabecera,
lnparte, '<'), 2, '>'))
CASE GETWORDNUM(GETWORDNUM(lccabecera, lnparte, '<'), 1,
'>')='CbteTipo'
replace tipocbte WITH VAL(GETWORDNUM(GETWORDNUM(lccabecera,
lnparte, '<'), 2, '>'))
CASE GETWORDNUM(GETWORDNUM(lccabecera, lnparte, '<'), 1,
'>')='CantReg'
REPLACE CantReg WITH VAL(GETWORDNUM(GETWORDNUM(lccabecera,
lnparte, '<'), 2, '>'))
CASE GETWORDNUM(GETWORDNUM(lccabecera, lnparte, '<'), 1,
'>')='Resultado'
REPLACE resultado WITH GETWORDNUM(GETWORDNUM(lccabecera,
lnparte, '<'), 2, '>')
CASE GETWORDNUM(GETWORDNUM(lccabecera, lnparte, '<'), 1,
'>')='Reproceso'
REPLACE Reproceso WITH GETWORDNUM(GETWORDNUM(lccabecera,
lnparte, '<'), 2, '>')
ENDCASE
ENDFOR
O hacerlo manejándolo como objeto (MSXML.DOMDocument), q esta forma es muy
eficiente, pero tenes q tener un poco de conocimiento.
En el otro foro, el usuario mapner subió un ejemplo q te lo comparto
https://groups.google.com/forum/?hl=es#!searchin/publicesvfoxpro/Factura$20E
lectr%C3%B3nica$20Argentina$20-$20Procesar$20Respuesta/publicesvfoxpro/ecg6p
4_Bdmk/abfOp_bBxg8J
Saludos.
Esteban.
De: [email protected] [mailto:[email protected]] En nombre de Walter Comito
Enviado el: lunes, 24 de agosto de 2015 06:04 p.m.
Para: GUFA List Member
Asunto: [GUFA] LEER XML
Amigos como están, tengo un problema para pàsar este xml a un cursor en vfp.
Use el famoso xmlto cursor pero no funciona.
Este xml es lo que me devuelve la afip cuando consulto un comprobante ya
autorizado.
Si alguien me puede dar una mano se lo agradecería.
<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<FECompConsultarResponse xmlns="http://ar.gov.afip.dif.FEV1/">
<FECompConsultarResult>
<ResultGet>
<Concepto>3</Concepto>
<DocTipo>86</DocTipo>
<DocNro>30702637895</DocNro>
<CbteDesde>1</CbteDesde>
<CbteHasta>1</CbteHasta>
<CbteFch>20150319</CbteFch>
<ImpTotal>1.21</ImpTotal>
<ImpTotConc>0</ImpTotConc>
<ImpNeto>1</ImpNeto>
<ImpOpEx>0</ImpOpEx>
<ImpTrib>0</ImpTrib>
<ImpIVA>0.21</ImpIVA>
<FchServDesde>20150319</FchServDesde>
<FchServHasta>20150319</FchServHasta>
<FchVtoPago>20150319</FchVtoPago>
<MonId>PES</MonId>
<MonCotiz>1</MonCotiz>
<Iva>
<AlicIva>
<Id>5</Id>
<BaseImp>1</BaseImp>
<Importe>0.21</Importe>
</AlicIva>
</Iva>
<Resultado>A</Resultado>
<CodAutorizacion>65122100099740</CodAutorizacion>
<EmisionTipo>CAE</EmisionTipo>
<FchVto>20150329</FchVto>
<FchProceso>20150319164020</FchProceso>
<PtoVta>3</PtoVta>
<CbteTipo>6</CbteTipo>
</ResultGet>
</FECompConsultarResult>
</FECompConsultarResponse>
</soap:Body>
</soap:Envelope>
Gracias.
Walter Cómito
Analista de Sistemas
MP 0397 C.P.C.I.P.C.
<mailto:[email protected]> [email protected]
<mailto:[email protected]> [email protected]
' +54 351 494.4667
153.292.707
þ <http://www.softram.com.ar/> www.softram.com.ar
Q Si no es necesario, no imprima este correo.
Todos somos responsables por el cuidado del medio ambiente.
NOTA DE CONFIDENCIALIDAD
Este mensaje (y sus anexos) es confidencial y puede contener información de
propiedad
exclusiva de Walter Cómito (SRS Sistemas). Si usted ha recibido este mensaje
por error,
por favor comuníquelo inmediatamente a <mailto:[email protected]>
walter.comito@ <http://gmail.com/> gmail.com y tenga la amabilidad
de eliminarlo; no deberá copiar el mensaje ni divulgar su contenido a
ninguna persona.
Muchas Gracias.
_____
<https://www.avast.com/antivirus> Avast logo
El software de antivirus Avast ha analizado este correo electrónico en busca
de virus.
www.avast.com <https://www.avast.com/antivirus>