Edu Posted January 22, 2015 Report Share Posted January 22, 2015 Prezados, Bom dia. Estou criando um arquivo xml e não estou conseguindo alterar o cabeçalho com a codificação desejada. Já pesquisei e não encontrei uma solução. Segue o código: * Cria novo documento xml oXml:= TXMLDocument():New() * Cabecalho oXml:oRoot:AddBelow( TxmlNode():New( HBXML_TYPE_PI , 'xml',, 'version="1.0" encoding="UTF-8"' )) * comentario oXml:oRoot:AddBelow( TxmlNode():New( HBXML_TYPE_COMMENT ,,, 'Evento S-1020 - Tabela de Lotacao' )) * Tag Principal do arquivo oNode:= TxmlNode():New( HBXML_TYPE_TAG , 'eSocial' ) oNode2:= TxmlNode():New( HBXML_TYPE_TAG , 'evtTabLotacao' ) oNode3:= TxmlNode():New( HBXML_TYPE_TAG , 'id' ) oNode3:cData:= ::nID oNode2:AddBelow(oNode3) oNode:AddBelow(oNode2) oXml:oRoot:AddBelow(oNode) // Add a tag eSocial * Cria o arquivo hFile := FCREATE( ".\evS-1020.xml" ) IF hFile != -1 oXml:Write( hFile , HBXML_STYLE_INDENT + HBXML_STYLE_THREESPACES ) Fclose( hFile ) ELSE MsgInfo("Falha ao criar o arquivo de envio do evento S-1020", "Atenção") ENDIF ****************************************************** Resultado: <?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8"?> <eSocial> <evtTabLotacao> <id>0001</id> </evtTabLotacao> </eSocial> Quote Link to comment Share on other sites More sharing options...
Edu Posted January 29, 2015 Author Report Share Posted January 29, 2015 Prezados, Bom dia. Estou criando um arquivo xml e não estou conseguindo alterar o cabeçalho com a codificação desejada. Já pesquisei e não encontrei uma solução. Segue o código: * Cria novo documento xml oXml:= TXMLDocument():New() * Cabecalho oXml:oRoot:AddBelow( TxmlNode():New( HBXML_TYPE_PI , 'xml',, 'version="1.0" encoding="UTF-8"' )) * Tag Principal do arquivo oNode:= TxmlNode():New( HBXML_TYPE_TAG , 'eSocial' ) oNode2:= TxmlNode():New( HBXML_TYPE_TAG , 'evtTabLotacao' ) oNode3:= TxmlNode():New( HBXML_TYPE_TAG , 'id' ) oNode3:cData:= ::nID oNode2:AddBelow(oNode3) oNode:AddBelow(oNode2) oXml:oRoot:AddBelow(oNode) // Add a tag eSocial * Cria o arquivo hFile := FCREATE( ".\evS-1020.xml" ) IF hFile != -1 oXml:Write( hFile , HBXML_STYLE_INDENT + HBXML_STYLE_THREESPACES ) Fclose( hFile ) ELSE MsgInfo("Falha ao criar o arquivo de envio do evento S-1020", "Atenção") ENDIF ****************************************************** Resultado: <?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8"?> <eSocial> <evtTabLotacao> <id>0001</id> </evtTabLotacao> </eSocial> Quote Link to comment Share on other sites More sharing options...
Edu Posted February 4, 2015 Author Report Share Posted February 4, 2015 Prezados, Bom dia. Estou criando um arquivo xml e não estou conseguindo alterar o cabeçalho com a codificação desejada. Já pesquisei e não encontrei uma solução. Segue o código: * Cria novo documento xml oXml:= TXMLDocument():New() * Cabecalho oXml:oRoot:AddBelow( TxmlNode():New( HBXML_TYPE_PI , 'xml',, 'version="1.0" encoding="UTF-8"' )) * Tag Principal do arquivo oNode:= TxmlNode():New( HBXML_TYPE_TAG , 'eSocial' ) oNode2:= TxmlNode():New( HBXML_TYPE_TAG , 'evtTabLotacao' ) oNode3:= TxmlNode():New( HBXML_TYPE_TAG , 'id' ) oNode3:cData:= ::nID oNode2:AddBelow(oNode3) oNode:AddBelow(oNode2) oXml:oRoot:AddBelow(oNode) // Add a tag eSocial * Cria o arquivo hFile := FCREATE( ".\evS-1020.xml" ) IF hFile != -1 oXml:Write( hFile , HBXML_STYLE_INDENT + HBXML_STYLE_THREESPACES ) Fclose( hFile ) ELSE MsgInfo("Falha ao criar o arquivo de envio do evento S-1020", "Atenção") ENDIF ****************************************************** Resultado: <?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8"?> <eSocial> <evtTabLotacao> <id>0001</id> </evtTabLotacao> </eSocial> Alguém pode me ajudar??? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 4, 2015 Report Share Posted February 4, 2015 Edu, poste a rotina completa, assim fica dificil te ajudar. abs. Quote Link to comment Share on other sites More sharing options...
joao Posted February 4, 2015 Report Share Posted February 4, 2015 Bom dia, Qual classe estás a usar? Quote Link to comment Share on other sites More sharing options...
Edu Posted February 4, 2015 Author Report Share Posted February 4, 2015 João, Estou usando a TXMLDOCUMENT. Abs. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 4, 2015 Report Share Posted February 4, 2015 Veja se te ajuda: http://forums.fivetechsupport.com/viewtopic.php?f=6&t=22768&p=164281&hilit=txmldocument#p164281 Quote Link to comment Share on other sites More sharing options...
joao Posted February 4, 2015 Report Share Posted February 4, 2015 Boa tarde, eu utilizo a CLASS TXMLWRITE , não sei se é a mesma , ai eu só alterei na fonte xml.prg METHOD New( cOut, cVer, cEncode, cSheet, lFormated ) CLASS TXMLWRITE DEFAULT cVer TO "1.0" DEFAULT cEncode TO "windows-1252" ::lFormated := lFormated //BYNAME lFormated ::CRLF := If( lFormated, Chr(13)+Chr(10), "" ) ::aMark := {} ::hFile := FCreate( AllTrim( cOut ), 0 ) ::Procesar( '<?xml version="' + cVer + '" encoding="' + cEncode + '"?>' ) IF !Empty( cSheet ) ::Procesar( '<?xml-stylesheet href="'+ AllTrim( cSheet ) + '" Type="text/xsl"?>' ) END IF RETURN Self Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.