Hola Juan,
Gracias por responder.
Acabo de ejecutar tu codigo y al hacer el
oMyAdapter.Tables.Item(1).ToCursor()
me muestra el siguiente error : "El indice o la expresion no coinciden con un
miembro existente de la colección"
Por otra parte probe con 3 archivos xml distintos todos del tipo <?xml
version="1.0" encoding="UTF-8"?>
Y para ver si cargo alguna tabla despues de hacer el LoadXML verifico la
propiedad: "oMyAdapter.Tables.Count" entiendo que deberia darme la cantidad de
tablas leidas y me da CERO
Estoy usando la version de VFP 9.0 SP1
Tal vez tenga un error el archivo XML te reproduzco uno de ellos :
<?xml version="1.0" encoding="UTF-8"?>
<pedidos>
<pedidoCab>
<nombre>Francis Albert Sinatra</nombre>
<nro_ped>0150</nro_ped>
<fecha>2012-Ol-28</fecha>
<total>400.50</total>
<pedidoLin>
<descrip>Bomba de agua</descrip>
<cod_rub>030</cod_rub>
<cod_art>0102</cod_art>
<precio>250.25</precio>
</pedidoLin>
<pedidoLin>
<descrip>Llave de paso</descrip>
<cod_rub>042</cod_rub>
<cod_art>0344</cod_art>
<precio>150.25</precio>
</pedidoLin>
</pedidoCab>
<pedidoCab>
<nombre>Gen Kelly</nombre>
<nro_ped>0151</nro_ped>
<fecha>2012-Ol-28</fecha>
<total>500.00</total>
<pedidoLin>
<descrip>Plancha elevadora</descrip>
<cod_rub>030</cod_rub>
<cod_art>0752</cod_art>
<precio>300.00</precio>
</pedidoLin>
<pedidoLin>
<descrip>Horno de coccion</descrip>
<cod_rub>044</cod_rub>
<cod_art>0147</cod_art>
<precio>200.00</precio>
</pedidoLin>
</pedidoCab>
</pedidos>
SaludosGabriel Rodriguez (Buenos Aires - Argentina)
From: [email protected]
To: [email protected]
Subject: [GUFA] Leer multiples tablas de un archivo XML
Date: Mon, 14 Jan 2013 17:17:54 +0100
Esto, sin más, es lo que utilizo para generar dos cursoresa partir de un XML
anidado: cORIGEN=ALLTRIM(“C:\TMP\ARCHIVO.XML”)
oMyAdapter=CREATEOBJECT("xmladapter")oMyAdapter.LoadXML(cORIGEN,.T.,.T.)oMyAdapter.Tables.Item(1).ToCursor()
&& Crea la tabla Nº 1oMyAdapter.Tables.Item(2).ToCursor() &&
Crea la Tabla Nº 2 SaludosJuan España Agüera (Málaga – España)www.foxgoing.com
952 282 280687 819 [email protected] De: [email protected]
[mailto:[email protected]] En nombre de Gabo Rodriguez
Enviado el: lunes, 14 de enero de 2013 17:04
Para: GUFA List Member
Asunto: [GUFA] Leer multiples tablas de un archivo XML Hola Gente.
Estoy necesitando leer 2 tablas (cabera y detalle) guardadas en un archivo XML
y no consigo hacerlo.
Este es el codigo de "José G. Samper" que estoy intentando ejecutar pero una
vez que hace el loadXML siempre me queda el "loXmladapter.Tables.Count=0"
Local loXmladapter As Xmladapter
Local lcDataset As String,loXML As MSXML.DOMDocument
** Creamos el objecto xmladapter
loXmladapter=Createobject("XMLAdapter")
** Creamos el Objecto dom para validar el xml
loXML=Createobject("MSXML.DOMDocument")
**loXmladapter.ReleaseXML(.T.)
**Solicitamos el archivo XML
lcDataset=Getfile("XML","Seleccione XML a procesar","Abrir",0,"Dataset de
ADO.Net")
If !Empty(lcDataset) And loXML.Load(lcDataset)
** Interpretamos el XML
loXmladapter.LoadXML(lcDataset,.T.,.t.)
Else
=Messagebox("No ha indicado un archivo XML válido",64,"PortalFox")
Return .F.
Endif
** Determinar y examinar las tablas del Dataset
For i = 1 To loXmladapter.Tables.Count && (SIEMPRE ME QUEDA EL Count en cero)
lcAlias = loXmladapter.Tables.Item(i).Alias
If Used(lcAlias)
Use In (lcAlias)
Endif
*** Establecemos el esquema
If Upper(Alltrim('products')) = Upper(Alltrim(lcAlias)) Or;
Upper(Alltrim('suppliers')) =
Upper(Alltrim(lcAlias))
loXmladapter.Tables(i).Fields(2).DataType = "C"
loXmladapter.Tables(i).Fields(2).MaxLength = 50
Endif
**llevamos la tabla xml a un cursor VFP
loXmladapter.Tables.Item(i).ToCursor()
Select(lcAlias)
Go Top In (lcAlias)
Browse
Next
Gracias.
Gabriel Rodriguez
---------------------------------------------------------------------------------------------------
Texto añadido por Panda GP 2012:
Este mensaje NO ha sido clasificado como SPAM. Si se trata de un mensaje de
correo no solicitado (SPAM), haz clic en el siguiente vínculo para
reclasificarlo: ¡Es SPAM!
---------------------------------------------------------------------------------------------------
<<attachment: image001.gif>>
<<attachment: image002.gif>>
<<attachment: image003.gif>>
