Consulta para importar xml

93 views
Skip to first unread message

Soledad Cros

unread,
Jan 7, 2020, 9:51:31 PM1/7/20
to Comunidad de Visual Foxpro en Español
Buenas noches a todos y muy feliz año.

Los vengo a molestar para saber como puedo hacer algo.
Necesito importar un xml (mi primera vez importando un archivo de este tipo) y no se por donde arrancar.
El archivo no es muy grande, es un log que deja el winscp
Sería algo como esto:

<?xml version="1.0" encoding="UTF-8"?>
<session xmlns="http://winscp.net/schema/session/1.0" name="XXDESTINO" start="2020-01-06T18:38:30.741Z">
  <upload>
    <filename value="H:\CARPETA\archivo.txt" />
    <destination value="/Carpeta_ftp/archivo.txt" />
    <result success="true" />
  </upload>
  <touch>
    <filename value="/Carpeta_ftp/archivo.txt" />
    <modification value="2019-12-26T17:57:28.000Z" />
    <result success="true" />
  </touch>
</session>

Con lo que necesito quedarme es con lo que esta dentro del <upload> y con la línea <session xmlns="http://winscp.net/schema/session/1.0" name="XXDESTINO" start="2020-01-06T18:38:30.741Z">

Si alguien me orienta estaría muy muy agradecida

Gracias por leer esto
Besos

Hugo C.

unread,
Jan 7, 2020, 10:14:48 PM1/7/20
to Comunidad de Visual Foxpro en Español
Para empezar puedes utilizar algo como esto :


clear
x = [<upload>;
    <filename value="H:\CARPETA\archivo.txt" />;
    <destination value="/Carpeta_ftp/archivo.txt" />;
    <result success="true" />;
    </upload>;
    <touch>]


y =   STREXTRACT(x,[<upload>], [</upload>])
? y  

z = STREXTRACT(y,[<filename value], [/>])
? z


Saludos

Luis suescún

unread,
Jan 8, 2020, 5:36:43 AM1/8/20
to publice...@googlegroups.com
Función xmltocursor revisa las ayudas

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/3d23eeb0-1478-432c-a06d-2bba62745ae1%40googlegroups.com.

Zarlu

unread,
Jan 8, 2020, 10:57:08 AM1/8/20
to Comunidad de Visual Foxpro en Español
Buenos días Soledad Cros!

Te comparto una parte de código que uso para leer un xml de cfdi del SAT  México
Quizá sea cuestión que identifiques los "campos" de tu xml y lo adaptes.

mCual=Getfile("xml")

If Empty(mCual)
    Messageb("No seleccionó ningun archivo.",0+48,"Verifique")
    Return
EndIf

mVersion=""
lcFolio=""
mRfcEMI=""
mRfcREC=""

*obtiene uuid
lcTimbrado= FILETOSTR(mCual)
mVersion= STREXTR(lcTimbrado, [Version="], [" ])
lcFolio = STREXTR(lcTimbrado, [UUID="], [" ])

*para obtener rfc emisor y receptor
Local xdoc As MSXML2.DOMDocument

 *!* Creamos un objeto basado en MSXML
 xdoc=Createobject('MSXML2.DOMdocument')
 *!* Cargamos el archivo XML a procesar
 xdoc.Load(mCual)
 *!* Llamamos a la función LeerDatos pasándole el nodo raíz
 *LeerCDs(xdoc.documentElement.childNodes)
 
* Lparameters root As MSXML2.IXMLDOMNode
 Local root As MSXML2.IXMLDOMNode
 root=xdoc.documentElement.childNodes
*Local Child As MSXML2.IXMLDOMNode
 
*!* Aqui se procesan los nodos
For Each Child In root&&por cada nodo que tiene el xml
    If upper(Child.nodeName)=="CFDI:EMISOR"
        For a=0 to Child.Attributes.Length-1&&numero de elementos que tiene el nodo nombre, rfc, regimen
            If upper(Child.Attributes.Item(a).Name)="RFC"
                mRfcEMI=Child.Attributes.Item(a).Value
            EndIf           
        EndFor           
    EndIf
    If Upper(Child.nodeName)=="CFDI:RECEPTOR"
        For a=0 to Child.Attributes.Length-1&&numero de elementos que tiene el nodo nombre, rfc, uso del cfdi
            If upper(Child.Attributes.Item(a).Name)="RFC"
                mRfcREC=Child.Attributes.Item(a).Value
            EndIf           
        EndFor           
    EndIf
EndFor   

Suerte
zarlu
Chetumal, Quintana Roo, México
Reply all
Reply to author
Forward
0 new messages