Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dilson_José

[Resolvido] Gerar XML CT-e com DOMDocument no VB6

Recommended Posts

Oi galera!

 

Seguinte estou gerando um XML com DOMDocument no VB6, o XML é do CT-e.

 

Consegui gerá-lo normalmente porém quando fui verificar o arquivo Gerado, surpresa, eis que tenho dois atributos "xmlns", já tentei de tudo incluve colocar o primeiro atributo por ultimo antes de gravar o XML mas não adiantou.

 

<?xml version="1.0" encoding="UTF-8"?>

-<CTe xmlns="http://www.portalfiscal.inf.br/cte">

-<infCte xmlns="" Id="CTe35090603533985000109570000000462970000462975" versao="1.03">

-<ide>

<cUF>35</cUF>

<cCT>000046297</cCT>

</ide></infCte></CTe>

 

Por favor ajudem-me, preciso urgentemente resolver este problema, obrigado, segue abaixo fragmento do meu codigo.

 

 

Option Explicit

 

Dim Nome As String, arquivo As Variant, XMLDoc As New DOMDocument

Dim Cabec, Raiz, InfVer, oNode, iNode, Child, SubChild, SubChild1, attr As IXMLDOMAttribute

 

Private Sub LaVolpeButton1_Click()

 

Call Captura_Dados_Conhe1

 

If Not Captura_Dados_Conhe1 Then

MsgBox "Variaveis nescessarias não geradas!", vbCritical, "OPS..."

Exit Sub

End If

 

Set XMLDoc = CreateObject("MSXML2.DOMDocument.6.0")

 

Nome = XMLPath & c_NewArq

arquivo = XMLDoc.Load(Nome)

 

If arquivo = True Then

 

MsgBox "Arquivo já existente !"

Set XMLDoc = Nothing

Exit Sub

 

End If

 

Set Raiz = XMLDoc.createElement("CTe")

XMLDoc.appendChild (Raiz)

 

Set attr = XMLDoc.createAttribute("xmlns")

attr.Value = "http://www.portalfiscal.inf.br/cte"

Raiz.setAttributeNode attr

Set attr = Nothing

Set Cabec = XMLDoc.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")

XMLDoc.insertBefore Cabec, Raiz

 

Set InfVer = XMLDoc.createElement("infCte")

Raiz.appendChild InfVer

 

Set attr = XMLDoc.createAttribute("versao")

attr.Value = "1.03"

InfVer.setAttributeNode attr

Set attr = Nothing

 

Set attr = XMLDoc.createAttribute("Id") ', )

attr.Value = c_Chave1

InfVer.setAttributeNode attr

Set attr = Nothing

Set oNode = XMLDoc.createElement("ide")

InfVer.appendChild oNode 'Acrescenta no XML

 

Set iNode = XMLDoc.createElement("cUF")

iNode.text = c_cUF

oNode.appendChild iNode

 

Set iNode = XMLDoc.createElement("cCT")

iNode.text = c_cCT

oNode.appendChild iNode

 

XMLDoc.Save Nome

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal, esta é a solução que encontrei para meu problema, a qual solucionei após esquentar bastante a cabeça com tal problema mas com persistência e paciência encontrei, bom tive que fazer isto ao final de tudo (salvar o xml) inclui conforme segue:

 

  gMensagem = "Criando o Arquivo.XML"
  XMLDoc.Save Nome

  'Cria novas Instâncias
  Set XMLDoc = New DOMDocument
  Dim NewRaiz As IXMLDOMElement

  Call XMLDoc.Load(Nome)

  'verifica se a carga do XML foi feita com sucesso
  If XMLDoc.parseError.reason <> "" Then
     MsgBox XMLDoc.parseError.reason
  End If

  'obtem o elemento raiz do XML
  Set NewRaiz = XMLDoc.documentElement
  NewRaiz.setAttribute "xmlns", "http://www.portalfiscal.inf.br/cte"
  Set NewRaiz = Nothing

  XMLDoc.Save Nome  'Termina definitivamente o XML

  c_NewArq = ""
  Exit Sub

 

Bom é isso ai pessoal, espero que sirva para alguém enfrentando a mesma dificuldade.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.