tmpXML = "" CabXML = "" EndXML = "" Select BO TEXT to CabXML textmerge noshow <Documento> <Documentonumber><<bo.obrano>></Documentonumber> <DocumentoData><<bo.Dataobra>></DocumentoData> </Documento> ENDTEXT Select bi Scan If(!Empty(Alltrim(bi.ref))) *!* > > *!* < < *!* & & *!* ' ' *!* " " *!*<Designacao><<alltrim(CHRTRANC(bi.Design, '&',' & '))>></Designacao> *!*<Designacao><<ALLTRIM(CAST(ICASE(like('*&*',bi.design), CHRTRANC(bi.Design, '&',' & '),bi.design) as C(60)))>></Designacao> m.valor = Alltrim(bi.Design) TEXT to lineXML textmerge noshow <Linhas> <Referencia><<alltrim(bi.ref)>></Referencia> <Designacao><<ALLTRIM(escapar(transform(m.valor)))>></Designacao> <Quantidade><<bi.qtt>></Quantidade> <PVP><<bi.edebito>></PVP> <Fornecedor><<bi.edebito>></Fornecedor> <Uneco><<bi.edebito>></Uneco> <PVP><<bi.edebito>></PVP> </Linhas> ENDTEXT tmpXML = tmpXML + lineXML + Chr(13) Endif Endscan EndXML = CabXML + tmpXML TEXT to finalXML textmerge noshow <?xml version="1.0" encoding="Windows-1252" standalone="yes"?> <VFPDataSet> <<EndXML>> </VFPDataSet> ENDTEXT ** export click gcDelimFile = Putfile([guardar como] , 'finalXML' , 'Xml') m.xml_file_name = StrToFile(finalXML,"finalXML.XML") If !Empty(m.gcDelimFile) Copy To (gcDelimFile) &&Type XML MSG("Exportação realizada com sucesso..!!") Else Messagebox("Exportação cancelada pelo Utilizador!",0+64,"Oppppssss!!!!") Endif *msg(finalXML) *------------------------------- Function escapar(valor) *------------------------------- If Len(Chrtran(m.valor,["'<>&],'')) # Len(m.valor) valor = Strtran(m.valor,[&],[&]) valor = Strtran(m.valor,['],[']) valor = Strtran(m.valor,[<],[<]) valor = Strtran(m.valor,[>],[>]) valor = Strtran(m.valor,["],["]) Endif Return m.valorPlease someone could help me.