formatear el XML retornado desde un webservice

01/06/2005 - 23:50 por Martin Horacio Martinez Figueroa | Informe spam
Estimados, tengo el siguiente problema:

Estoy rescatando, desde VFP8, un xml que viene desde un
WebService desarrollado en .NET y al ejecutar la instrucción
"Xmla.Tables.Item(iLoop).ToCursor()" me genera el cursor como corresponde,
el problema es que el tipo de los campos son todos MEMO, lo que en la
realizadad no es asi, estan definidos como STRING, DATE, LOGICO, etc...,
invente algo que funciona y funciona bien, esto es:
FOR i = 1 TO Xmla.Tables(iLoop).Fields.Count
nPosArray ASCAN(aAlias,UPPER(Xmla.Tables(iLoop).Fields(i).Alias),-1,-1,0,8)
IF !EMPTY(nPosArray)
cCampo = ALLTRIM(aAlias[nPosArray,1])
cTipo = ALLTRIM(aAlias[nPosArray,2])
nLargo = aAlias[nPosArray,3]
Xmla.Tables(iLoop).Fields(i).DataType = cTipo
Xmla.Tables(iLoop).Fields(i).MaxLength = nLargo
ENDIF
ENDFOR
Xmla.Tables.Item(iLoop).ToCursor()

Lo que hace esto es leer o recorrer todo el XML y formatearlo según una
estructura de archivo que está en .dbf, esta estructura la paso a un
arreglo y se comienza a recorrer uno por uno todos los campos devuestos
desde el XML.

Esto en la actualizad funciona y bien.
Lo que pasa es que quisiera saber si alguien sabe como hacerlo de otra
manera sin tener que recorrer todos los campos del XML y hacerlo en una
solo instrucción.


Atte.
Martín Martínez.



PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
 

Leer las respuestas

#1 José G. Samper
02/06/2005 - 23:37 | Informe spam
Hola como estas, la solución a tu problema es en .Net no en VFP 8.0, debes
tipear el DataTable en .Net y con esto se resuelve tu problema

Saludos

José G. Samper
MCAD/MCSD/MCDBA
http://www.foxynet.net/


"Martin Horacio Martinez Figueroa" escribió en el
mensaje news:
Estimados, tengo el siguiente problema:

Estoy rescatando, desde VFP8, un xml que viene desde un
WebService desarrollado en .NET y al ejecutar la instrucción
"Xmla.Tables.Item(iLoop).ToCursor()" me genera el cursor como corresponde,
el problema es que el tipo de los campos son todos MEMO, lo que en la
realizadad no es asi, estan definidos como STRING, DATE, LOGICO, etc...,
invente algo que funciona y funciona bien, esto es:
FOR i = 1 TO Xmla.Tables(iLoop).Fields.Count
nPosArray > ASCAN(aAlias,UPPER(Xmla.Tables(iLoop).Fields(i).Alias),-1,-1,0,8)
IF !EMPTY(nPosArray)
cCampo = ALLTRIM(aAlias[nPosArray,1])
cTipo = ALLTRIM(aAlias[nPosArray,2])
nLargo = aAlias[nPosArray,3]
Xmla.Tables(iLoop).Fields(i).DataType = cTipo
Xmla.Tables(iLoop).Fields(i).MaxLength = nLargo
ENDIF
ENDFOR
Xmla.Tables.Item(iLoop).ToCursor()

Lo que hace esto es leer o recorrer todo el XML y formatearlo según una
estructura de archivo que está en .dbf, esta estructura la paso a un
arreglo y se comienza a recorrer uno por uno todos los campos devuestos
desde el XML.

Esto en la actualizad funciona y bien.
Lo que pasa es que quisiera saber si alguien sabe como hacerlo de otra
manera sin tener que recorrer todos los campos del XML y hacerlo en una
solo instrucción.


Atte.
Martín Martínez.



PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway

Preguntas similares