Jump to content
Fórum Script Brasil

Joacir

Membros
  • Posts

    12
  • Joined

  • Last visited

About Joacir

Perfil

  • Gender
    Male

Joacir's Achievements

0

Reputation

  1. Olá! Como remover quebra de linha em documento XML quando o campo está em branco? Conforme arquivo XML abaixo e o código exemplo abaixo em VB.Net 2013; Obrigado <?xml version='1.0' encoding='UTF-8'?> <PrimeiroNo xmlns="NamespaceDoPrimeiroNo"> <SegundoNo> <Campo1doSegundoNo>Valor do Campo 1 do SegundoNo</Campo1doSegundoNo> <Campo2doSegundoNo>Valor do Campo 2 do SegundoNo</Campo2doSegundoNo> <Campo3doSegundoNo>Valor do Campo 3 do SegundoNo</Campo3doSegundoNo> <TerceiroNo> <Campo1doTerceiroNo>Valor do Campo 1 do TerceiroNo</Campo1doTerceiroNo> <Campo2doTerceiroNo> </Campo2doTerceiroNo> <QuartoNo> <Campo1doQuartoNo> </Campo1doQuartoNo> </QuartoNo> </TerceiroNo> </SegundoNo> </PrimeiroNo> Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim xmlDoc As New Xml.XmlDocument() Dim campodoNó As Xml.XmlElement Dim primeiroNó, segundoNó, terceiroNó, quartoNó As Xml.XmlElement primeiroNó = xmlDoc.CreateElement("PrimeiroNo") primeiroNó.SetAttribute("xmlns", "NamespaceDoPrimeiroNo") segundoNó = xmlDoc.CreateElement("SegundoNo") campodoNó = xmlDoc.CreateElement("Campo1doSegundoNo") campodoNó.InnerText = "Valor do Campo 1 do SegundoNo" segundoNó.AppendChild(campodoNó) campodoNó = xmlDoc.CreateElement("Campo2doSegundoNo") campodoNó.InnerText = "Valor do Campo 2 do SegundoNo" segundoNó.AppendChild(campodoNó) campodoNó = xmlDoc.CreateElement("Campo3doSegundoNo") campodoNó.InnerText = "Valor do Campo 3 do SegundoNo" segundoNó.AppendChild(campodoNó) terceiroNó = xmlDoc.CreateElement("TerceiroNo") campodoNó = xmlDoc.CreateElement("Campo1doTerceiroNo") campodoNó.InnerText = "Valor do Campo 1 do TerceiroNo" terceiroNó.AppendChild(campodoNó) campodoNó = xmlDoc.CreateElement("Campo2doTerceiroNo") campodoNó.InnerText = "" terceiroNó.AppendChild(campodoNó) quartoNó = xmlDoc.CreateElement("QuartoNo") campodoNó = xmlDoc.CreateElement("Campo1doQuartoNo") campodoNó.InnerText = "" quartoNó.AppendChild(campodoNó) terceiroNó.AppendChild(quartoNó) segundoNó.AppendChild(terceiroNó) primeiroNó.AppendChild(segundoNó) xmlDoc.AppendChild(xmlDoc.CreateProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")) xmlDoc.AppendChild(primeiroNó) Dim arq As String = "C:\Teste\4Nos\TesteXMLVBnet.xml" xmlDoc.Save(arq) End Sub End Class
  2. Olá! Instalei o Visual Studio 2013 e fiz testes com o exemplo que passou acima e não sei se funcionou. Se abri o XML sem a linha que grava como texto a formatação no browser fica normal de arquivo XML, porém, com a linha salva como texto, fica desconfigurado. Se isso funcionasse, como faria no caso de já ter o arquivo XML pronto em VB6, ou seja, faria uma rotina no Visual Studio 2013 para abrir o XML, abriria um arquivo texto que teria a linha do HASH final e salvar esta linha no arquivo XML? Obrigado e até ...
  3. Oi! Realmente não é complicado! Até daria para fazer esta geração de arquivo em VS2012 ou 2013, só que nem sei como é, principalmente para abrir um banco de dados access que é onde tenho todas as informações para a geração do arquivo. Mas vou ver para instalar um deles e trabalhar na questão de abrir o arquivo, receber o hash e só salvar o arquivo. Para gerar o HASH uso o MD5, que foi o solicitado e consegui via net, uma DLL que faço referência no projeto e aí é só chamar com o texto; Agora, não entendo por que o arquivo nem no notepad não abre formatado direitinho. Muito obrigado, tudo de bom e até ... Joacir
  4. Olá! Então, eu não faço ideia de qual versão .NET utilizar, mas, se puder me ajudar, será que seria possível uma DLL que recebesse o arquivo e o hash e inserisse no final? Só falta arredondar este pequeno detalhe do arquivo para que possa ter sossego e começar a migrar o sistema em uma versão mais atual do VB.Net ou ainda partir para C#. Segue abaixo um exemplo de como estou fazendo para você ter uma idéia melhor. Estive verificando que mesmo o arquivo sem a linha no final ao abrir com o notepad ele abre bagunçado. Obrigado e até ... Dim xml As New DOMDocument Dim PrimeiroNo As IXMLDOMElement Dim SegundoNo As IXMLDOMElement Dim TerceiroNo As IXMLDOMElement Dim QuartoNo As IXMLDOMElement Dim Cabec, CampoDoNo As IXMLDOMElement 'Cria o elemento raíz Set PrimeiroNo = xml.createElement("PrimeiroNo") 'Abre o primeiro nó. Call PrimeiroNo.setAttribute("xmlns", "NamespaceDoPrimeiroNo") 'Define o atributo do namespace. Call xml.appendChild(PrimeiroNo) 'Carrega o primeiro nó. 'Define a declaração inicial do xml. Set Cabec = xml.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'") xml.insertBefore Cabec, PrimeiroNo Set SegundoNo = xml.createElement("SegundoNo") 'Abre o segundo nó. Set CampoDoNo = xml.createElement("Campo1doSegundoNo") 'Cria o campo do segundo nó CampoDoNo.Text = "Valor do Campo 1 doSegundoNo": Call SegundoNo.appendChild(CampoDoNo) Set CampoDoNo = xml.createElement("Campo2doSegundoNo") CampoDoNo.Text = "Valor do campo 2 do SegundoNo": Call SegundoNo.appendChild(CampoDoNo) Set CampoDoNo = xml.createElement("Campo3doSegundoNo") CampoDoNo.Text = "Valor do campo 3 do SegundoNo": Call SegundoNo.appendChild(CampoDoNo) Set TerceiroNo = xml.createElement("TerceiroNo") 'Abre o terceiro nó. Set CampoDoNo = xml.createElement("Campo1doTerceiroNo") 'Cria o campo do terceiro nó CampoDoNo.Text = "Valor do campo 1 Do TerceiroNo": Call TerceiroNo.appendChild(CampoDoNo) Set CampoDoNo = xml.createElement("Campo2doTerceiroNo") CampoDoNo.Text = "Valor do campo 2 Do TerceiroNo": Call TerceiroNo.appendChild(CampoDoNo) Set QuartoNo = xml.createElement("QuartoNo") 'Abre o quarto nó. Set CampoDoNo = xml.createElement("Campo1doQuartoNo") 'Cria o campo do quarto nó CampoDoNo.Text = "Valor do campo 1 Do QuartoNo": Call QuartoNo.appendChild(CampoDoNo) Call TerceiroNo.appendChild(QuartoNo) 'Finaliza o quarto nó. Call SegundoNo.appendChild(TerceiroNo) 'Finaliza o terceiro nó. Call PrimeiroNo.appendChild(SegundoNo) 'Finaliza o segundo no e o documento xml. xml.Save ("c:\TESTEXMLVB6.xml") 'Salva no local especificado. open "c:\TESTEXMLVB6.xml" for append as #1 print #1, hash close #1
  5. Oi! Excelente sua interpretação. Mas, no caso do meu problema, o arquivo gerado sem a linha final, abre no ie, notepad ou editor xml identado certinho como arquivo XML, mas, quando coloco a linha no final pelo comando print, fica todo bagunçado e aí só me retornaram que o arquivo estava fora do padrão e para eu confirmar, era só abrir pelo notepad e ver que estava tudo bagunçado. Aí fiquei sem ação, não sei o que fazer. Quer dizer, até sei, tenho que migrar este sistema para .Net, mas, estou sem tempo e o cliente precisa desta alteração para ontem. Agora, não sei se em .Net também não teria este problema. Obrigado e até ...
  6. Olá! Se montar todo o arquivo como texto, obedecendo as regras do XML e só depois de salvo como texto, mudar para .XML será que funcionara? Obrigado e até ...
  7. Oi! Pior que não dá! Exigências, tem que ser fora do nó principal. É até estranho, já que faz parte do arquivo, deveria ser em um nó específico, mas, sabe como é! Até questionei que assim, sai do padrão, mas, eles só responderam que tem que seguir o que está no manual e lá está que tem que ser assim. Obrigado e até ...
  8. Oi! Até existe documentação, mas, só descreve que tem que haver o hash no final que é a validação de todo o arquivo. Também achei estranho, questionei, mas, como poucos reclamaram. Ficou assim mesmo. Não está solta, está acompanhada de <hash> ... <hash>, mas, está após o fechamento do nó principal;
  9. Oi! Problema! Funcionou, mas, bagunçou o arquivo XML, já não fica identado como arquivo XML e o destino que tenho que enviar, reclamou que o arquivo está fora do padrão! E agora???
  10. Obrigado! Funcionou! Nem suspeitava que seria tão simples! Valeu! Obrigado e até ...
  11. Olá! Não será retirado na leitura. Na realidade é uma linha de validação exigida pelo solicitante. Esta linha é na realidade um HASH formado por todas as linhas do arquivo, ou seja, segurança e também validador do arquivo. Obrigado!
  12. Olá! Tenho um sistema em VB6 que gera um arquivo de retorno em XML. Utilizo o DomDocument para gerar o XML e foi o que encontrei de mais rápido e prático para gerar o XML. A geração do arquivo está ok, o problema é que preciso colocar uma linha ao final do XML fora do nó raiz para validação do arquivo XML e não estou conseguindo. É tipo uma linha de assinatura no final do arquivo para que este seja validado no destino, alguém tem uma idéia?
×
×
  • Create New...