Página 1 de 1

Problemas com Metodo toString do TXmlDocument.

Enviado: 19 Nov 2010 18:29
por chrissoares
Prezados,

Comecei a utilizar a versão 1.2.0 do xHarbour a pouco tempo, até tirei algumas duvidas no post Compilando com hbMake. Meu sistema compilou e eu voltei a fazer as alterações nos XML que ele cria para troca de dados com outros sistemas. Até antes da atualização do xHarbour (utilizava a versão 0.90.66) os XML as Tags ficavam identadas e os valores dentro delassem nenhum espaço entre o valor e as tags. Depois que passei a compilar o sistema com o xHarbour 1.2.0, a identação continuou normalmente, pórem os valores ganharão 12 espaços em branco a esquerda e 9 a direita, em todos as tags.
Alguem sabe o que pode estar causando isto ? Alguem já viu isto acontecendo com esta versão do xHarbour ? Pode ter alguma coisa haver com o hbMake ?
Abaixo esta um exemplo de Antes e Depois:
Antes

Código: Selecionar todos

<produto>
  <codigo>31</codigo>
  <descricao>Cadeira com braco</descricao>
  <und>UND</und>
  <qtd>10</qtd>
  <valor>253.50</valor>
  <aliqIcms>18.00</aliqIcms>
</produto>
Depois

Código: Selecionar todos

      <produto>
         <codigo>            31         </codigo>
         <descricao>            Cadeira com braco         </descricao>
         <und>            UND         </und>
         <qtd>            10         </qtd>
         <valor>            253.50         </valor>
         <aliqIcms>            18.00         </aliqIcms>
      </produto>
Para gerar o xml eu utilizo:
fwrite( n, HB_OEMTOANSI(RemAcentos(::oXml:ToString( HBXML_STYLE_INDENT+HBXML_STYLE_THREESPACES))) )

O objeto oXml é um TXmlDocument.

Obrigado a todos.

Re: Problemas com Metodo toString do TXmlDocument.

Enviado: 19 Nov 2010 19:19
por alxsts
Olá!

Experimente deixar só o HBXML_STYLE_THREESPACES ao invés de HBXML_STYLE_INDENT+HBXML_STYLE_THREESPACES.

Re: Problemas com Metodo toString do TXmlDocument.

Enviado: 20 Nov 2010 00:52
por chrissoares
Como vai Alxsts,
Putz como se pronuncia isso?

Eu já tentei com todas as opções de Layout para o toString, até deixando sem nenhum layout. Realmente muda um poucoa situação, quando se deixa o toString sem parametros resta apenas um caracter de espaço a esquerda, o que causa problemas na validação do XML.

Eu verifiquei os valores logo após criar as tags no objeto oXml e estão corretas neste ponto, o problema é gerado quando vou gravar o conteudo do oXml em um arquivo. Eu verifiquei o valor do oXml antes de fazer o fwrite e já existe o problema. Acredito que tenha alguma relação com a função toString e seus parametros.

Obrigado pela atenção!

Re: Problemas com Metodo toString do TXmlDocument.

Enviado: 24 Nov 2010 16:17
por chrissoares
Consegui uma solução, meio gambiarra, mas resolveu o problema e não apresentou outros. Vou postar aqui apenas para se caso alguem passar pelo mesmo problema que eu, tem uma saída.

Eu copiei os arquivos rdd.lib e rtl.lib do xHarbour 1.2.1 para o meu xHarbour 1.2.0, recompilei todos os PRGs e testei. O XML saiu perfeito como antes.

Abraços a todos!

Re: Problemas com Metodo toString do TXmlDocument.

Enviado: 24 Nov 2010 16:46
por alxsts
Olá!

Parabéns Chris!

Aqui usamos o 1.1.0 (SimpLex) e não ocorre o problema. Por isto não te respondi novamente...
chrissoares escreveu:Putz como se pronuncia isso?
É um mnemônico... Pode chamar pelo nome.