m.lcArquivo="c:\work\estoque.xml" m.lcXML=filetostr(m.lcArquivo) m.lcEsquema=strextract(m.lcXML,"","</xsd:schema>")+"</xsd:schema>" xmltocursor(m.lcEsquema+"</VFPData>","cCursorXML") m.lcCursor=strextract(strextract(m.lcXML,"</xsd:schema>",">"),"<","") m.lnOcorrencias=occurs("<"+m.lcCursor+">",m.lcXML) for m.loop1=1 to m.lnOcorrencias step 500 m.lnInicio=at("<"+m.lcCursor+">",m.lcXML,m.loop1) m.lnFim=at("</"+m.lcCursor+">",m.lcXML,m.loop1+499) m.lcLinha = substr(m.lcXML,m.lnInicio,m.lnFim-m.lnInicio) if empty(m.lcLinha) exit endif xmltocursor(m.lcEsquema+m.lcLinha+"</"+m.lcCursor+">"+"</VFPData>","cXmlTemp") insert into cCursorXML select * from cXmlTemp endfor m.lnInicio=at("<"+m.lcCursor+">",m.lcXML,reccount("cCursorXML")+1) m.lnFim=at("</VFPData>",m.lcXML) m.lcLinha = substr(m.lcXML,m.lnInicio,m.lnFim-m.lnInicio) if !empty(m.lcLinha) xmltocursor(m.lcEsquema+m.lcLinha+"</VFPData>","cXmlTemp") insert into cCursorXML select * from cXmlTemp endif use in xmltempAgora é só criar uma classe, alguns parametros e acho que esta beleza. Se tiver alguma sugestão, vamos baixar esses 28 segundos. Depois vou postar na área de downloads aqui na UT.