forked from tgmti/TGM_Advpl_Tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TGETOXML.prw
89 lines (60 loc) · 2.02 KB
/
TGETOXML.prw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#Include 'Protheus.ch'
//====================================================================================================================\\
/*/{Protheus.doc}TGETOXML
====================================================================================================================
@description
Abre um arquivo indicado e converte para XML
@author Thiago Mota
@author <mota.thiago@totvs.com.br>
@author <tgmspawn@gmail.com>
@version 1.0
@since 06/04/2016
@return oXml, Padrão: := Nil - Conteúdo do arquivo Convertido para XML
@param cArq, Caractere , Caminho e nome do arquivo a ser convertido
@param oXml, Objeto , Objeto que será retornado como XML
@param cLog, Caractere , Variável para retorno dos erros e avisos encontrados em caso de problema na conversão
@obs
Áreas utilizadas: Areas
@sample U_TGETOXML(cArq, oXml, cLog, cFileXml)
/*/
//===================================================================================================================\\
User Function TGETOXML(cArq, oXml, cLog, cFileXml)
Local lRet := .F.
Local clError := ""
Local clWarning := ""
Local nHdl
Local nBuffer
Default cArq := ""
Default cLog := ""
Default cFileXml:= ""
oXml:= Nil
If File(cArq)
nHdl:= fOpen( cArq )
If nHdl >= 0
nBuffer:= fSeek(nHdl,0,2)
cFileXml := Space(nBuffer)
FSeek(nHdl, 0, 0)
cFileXml := FReadStr( nHdl, nBuffer )
FClose(nHdl)
oXml := XmlParser(cFileXml,"_",@clError,@clWarning)
If ValType(oXml) == "O"
lRet:= .T.
Else
cLog:= "Erro ao converter o arquivo '" + cArq + "'."
If ! Empty(clError)
cLog+= CRLF + clError
EndIf
If ! Empty(clWarning)
cLog+= CRLF + clWarning
EndIf
oXml:= Nil
EndIf
Else
cLog:= "Erro ao abrir o arquivo '" + cArq + "'. FERROR: " + str(ferror(),4)
EndIf
Else
cLog:= "Arquivo '" + cArq + "' não encontrado para conversão."
Endif
Return ( lRet )
// FIM da Funcao TGETOXML
//======================================================================================================================