11.4. Utilidadades
11.4.5. Identar XML
11.4.4. Gerar PDF do DACTE [25-06-12]
« Anterior
11.4.6. LeArquivoANSI
Próximo »

11.4.5. Identar XML

Identar XML

Assinatura:

string IdentaXML(string txtXML, out long cResultado, out string msgResultado);

Descrição:

Funcionalidade identar um XML.

A SEFAZ orienta para que os XML sejam gerados sem formatação de quebra de linha e tabulação de formatação entre tags para economizar espaços.

Esta funcionalidade serve para fazer a identação do XML que será exibido ao usuário.

Exemplo:

XML sem identação:

<retConsStatServCte versao="1.04" xmlns="http://www.portalfiscal.inf.br/cte"><tpAmb>2</tpAmb><verAplic>SP_PL_CTe_104</verAplic><cStat>107</cStat><xMotivo>Serviço em Operação</xMotivo><cUF>35</cUF><dhRecbto>2011-11-22T05:15:07</dhRecbto><tMed>1</tMed></retConsStatServCte>

XML com identação:

<retConsStatServCte versao="1.04" xmlns="http://www.portalfiscal.inf.br/cte">
     <tpAmb>2</tpAmb>
     <verAplic>SP_PL_CTe_104</verAplic>
     <cStat>107</cStat><xMotivo>Serviço em Operação</xMotivo>
     <cUF>35</cUF>
     <dhRecbto>2011-11-22T05:15:07</dhRecbto>
     <tMed>1</tMed>
</retConsStatServCte>

Parâmetros:

nome tipo fluxo descrição
txtXML string entrada informar uma string com o XML que deseja identar
cResultado long saída retorna o resultado da chamada do WS
msgResultado string saída retorna a literal do resultado da chamada do WS

Retorno:

O resultado da chamada é uma string com o XML identado.

O cResultado retorna um dos seguintes códigos:

código Mensagem origem regra
7310 Identação do XML realizada com sucesso. DLL -
7311 Erro: Falha na Identação do XML :[Mensagem de Erro] DLL -

Histórico de atualização:

Exemplos:

Delphi

 
  //
  Util := CreateOleObject('CTe_Util.util');
  //
  // formata XML, com identação para melhor visualização, não gravar o XML formatado,
  // pois este processo CORROMPE A ASSINATURA DIGITAL
  //
  rtfDocto.Text := Util.IdentaXML(xmlString, resultado, msgResultado);
  //

Visual Basic 6.0

'
' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL
'
Dim txtXML As String    ' informar uma string com o XML que deseja identa
Dim cResultado As Long  ' retorna o resultado da chamada da dll
Dim msgResultado As String  ' retorna a literal do resultado da chamada da dll
Dim XMLidentado AS String   ' retorna o arquivo XML identado
'
msgResultado = ""
cResultado = 0
XMLidentado = ""
 
'
Dim nomeArquivo As String   ' nome do arquivo que será identado
'
nomeArquivo = "c:\exemplo.xml"
'
' importante: verificar a existência do arquivo solicitado na pasta do VB e indicar o caminho correto para ele
'   Carrega o conteúdo do nome do arquivo em txtXML
'
Open nomeArquivo For Input As #1
txtXML = Input$(LOF(1), 1)
Close #1
 
 
Dim objCTeUtil As Object
 
Set objCTeUtil = CreateObject("CTe_Util.Util")
 
 
Screen.MousePointer = vbHourglass    ' ampulheta
'
'
Dim Result As String
 
'
XMLidentado = objCTeUtil.IdentaXML(txtXML, cResultado, msgResultado)
'
'
Screen.MousePointer = vbDefault ' normal
'
'
If cResultado = 7310 Then
   '
   '  grava XML Identado
   '
   nomeArquivo = "XMLidentado.xml"
   Open nomeArquivo For Output As #1
   Print #1, XMLidentado
   Close #1
 
MsgBox msgResultado + Chr(13) + Chr(13) + XMLidentado, vbInformation, "Informação"
 
Else
 
MsgBox cResultado + Chr(13) + Chr(13) + msgResultado, vbInformation, "Falha na Identação"
 
End If
'
' libera classe
'
'
Set objCTeUtil = Nothing
11.4.5. Identar XML
11.4. Utilidadades
« Anterior
11.4.4. Gerar PDF do DACTE [25-06-12]
Próximo »
11.4.6. LeArquivoANSI