*_______________________________________________________________________________
Func gera_xml(oModelo)
Local oMod := oModelo
Local aData := substr(dtoc(date()),7,4)+"-"+substr(dtoc(date()),4,2)+"-"+substr(dtoc(date()),1,2)
local1:=chr(13)+chr(10)
local2:=0
Local3 := alltrim(oMod)+".XML"
dbselectarea('fitnomad')
ordsetfocus('refe_fit')
dbseek(oMod)
if eof()
msgstop("Produto não encontrado","Atenção")
return(nil)
else
dbselectarea('granomad')
ordsetfocus('desc_gra')
dbseek(fitnomad->grad_fit)
if eof()
msgstop("Grade não encontrada","Atenção")
endi
endi
nhandle:=fCreate(Local3,Local2)
fwrite(nhandle,;
'<?xml version="1.0"?>'+Local1)
fwrite(nhandle,;
'<catalogo>'+Local1)
fwrite(nhandle,;
' <ident>'+Local1)
fwrite(nhandle,;
' <versao>1.0</versao>'+Local1)
fwrite(nhandle,;
' <data>'+aData+'</data>'+Local1)
fwrite(nhandle,;
' </ident>'+Local1)
fwrite(nhandle,;
' <gerador>'+Local1)
fwrite(nhandle,;
' <razao>'+alltrim(connomad->nome_con)+'</razao>'+Local1)
fwrite(nhandle,;
' <cnpj>'+alltrim(connomad->cnpj_con)+'</cnpj>'+Local1)
fwrite(nhandle,;
' </gerador>'+Local1)
fwrite(nhandle,;
' <produtos>'+Local1)
fwrite(nhandle,;
' <produto>'+Local1)
fwrite(nhandle,;
' <prod>'+alltrim(fitnomad->cpro_fit)+'</cod>'+Local1)
fwrite(nhandle,;
' <pcategoria>'+alltrim(fitnomad->desc_fit)+'</pcategoria>'+Local1)
fwrite(nhandle,;
' <punid>PR</pcategoria>'+Local1)
fwrite(nhandle,;
' <grade>'+Local1)
for a = 1 to 20
var_1="granomad->gr"+alltrim(str(a))+"_gra"
if &var_1 <> spac(5)
fwrite(nhandle,;
' <tm tid="'+alltrim(str(a))+'">'+alltrim(&var_1)+'</tm>'+Local1)
endi
next
fwrite(nhandle,;
' </grade>'+Local1)
fwrite(nhandle,;
' <materiais>'+Local1)
fwrite(nhandle,;
' <material>'+Local1)
fwrite(nhandle,;
' <fmatcod>'+alltrim(fitnomad->codm_fit)+'</fmatcod>'+Local1)
fwrite(nhandle,;
' <cores>'+Local1)
fwrite(nhandle,;
' <cor>'+Local1)
fwrite(nhandle,;
' <fcrcod>'+alltrim(fitnomad->codc_fit)+'</fcrcod>'+Local1)
fwrite(nhandle,;
' <eans>'+Local1)
for a = 1 to 20
var_2 = 'fitnomad->cba'+alltrim(str(a))+'_fit'
if &var_2 <> spac(13)
fwrite(nhandle,;
' <ean tid="'+alltrim(str(a))+'">'+alltrim(&var_2)+'</ean>'+Local1)
endi
next
fwrite(nhandle,;
' </eans>'+Local1)
fwrite(nhandle,;
' </cor>'+Local1)
fwrite(nhandle,;
' </cores>'+Local1)
fwrite(nhandle,;
' </material>'+Local1)
fwrite(nhandle,;
' </materiais>'+Local1)
fwrite(nhandle,;
' </produto>'+Local1)
fwrite(nhandle,;
' </produtos>'+Local1)
fwrite(nhandle,;
'</catalogo>'+Local1)
fclose(nhandle)
return(nil)
Que gera o arquivo abaixo
<?xml version="1.0"?>
<catalogo>
<ident>
<versao>1.0</versao>
<data>2018-01-09</data>
</ident>
<gerador>
<razao>DAVID DA SILVA ADAO CALÇADOS ME</razao>
<cnpj>08595135000159</cnpj>
</gerador>
<produtos>
<produto>
<prod>1000 CAT</cod>
<pcategoria>BOTAS DE MATERIAL RECICLADO</pcategoria>
<punid>PR</pcategoria>
<grade>
<tm tid="1">33</tm>
<tm tid="2">34</tm>
<tm tid="3">35</tm>
<tm tid="4">36</tm>
<tm tid="5">37</tm>
<tm tid="6">38</tm>
<tm tid="7">39</tm>
<tm tid="8">40</tm>
<tm tid="9">41</tm>
<tm tid="10">42</tm>
<tm tid="11">43</tm>
<tm tid="12">44</tm>
</grade>
<materiais>
<material>
<fmatcod>DBR</fmatcod>
<cores>
<cor>
<fcrcod>AOC</fcrcod>
<eans>
<ean tid="1">859513500701</ean>
<ean tid="2">859513500718</ean>
<ean tid="3">859513500725</ean>
<ean tid="4">859513500732</ean>
<ean tid="5">859513500749</ean>
<ean tid="6">859513500756</ean>
<ean tid="7">859513500763</ean>
<ean tid="8">859513500770</ean>
<ean tid="9">859513500787</ean>
<ean tid="10">859513500794</ean>
<ean tid="11">859513500800</ean>
<ean tid="12">859513500817</ean>
</eans>
</cor>
</cores>
</material>
</materiais>
</produto>
</produtos>
</catalogo>
Salvei o arquivo como .XML
Fazendo da forma que fiz, Isto é um arquivo XML?