Jump to content
eduardohaag

[Resolvido] Erro ao ler xml

Recommended Posts

Olá estou criando um sistema onde preciso calcular a previsão de envio do pedido em dias uteis, para isso estou usando um webservice gratuito que retorna um xml, porém estou tendo o erroSystem.XML.XmlException: 'Dados no nível raiz inválidos. Linha 1, posição 1.'

 

Meu código é 

Sub Preenchedata()
        Dim sql = "SELECT PrazoPadraoProducao FROM Configuracoes"
        Dim dr As DataTable = AcessoDB.ExecutarComando(sql, CommandType.Text, Nothing, AcessoDB.TipoDeComando.ExecuteDataTable)

        Dim ds As New DataSet
        Dim xml As String = "https://elekto.com.br/api/Calendars/br-BC/Add?initialDate=" & Now.Year & "-" & Now.Month & "-" & Now.Day & "&days=" & dr.Rows(0).Item(0) & "&type=work"
        ds.ReadXml(xml)

 

e o xml retornado é 

 

<dateTime xmlns="http://schemas.microsoft.com/2003/10/Serialization/">2019-05-03T00:00:00Z</dateTime>

 

Alguém tem alguma ideia de como posso eliminar o erro?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By rl28
      Bom dia,
       
      Estou querendo ler todos arquivos que meu sistema gerou na minha máquina no formato .txt e carregar os mesmos em uma gridview, assim deixando apenas uma tela de consulta dos dados salvos nos arquivos txt, porém, meu código não está conseguindo consultar os arquivos, podem me ajudar?
       
      Obs.: Quando utilizo o nome fixo do arquivo, funciona.
       
      Código abaixo:

       
      Public Class formListaTransacao Private Sub formListaTransacao_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim dt As New DataTable dt.Columns.Add("Código") dt.Columns.Add("Descrição") dt.Columns.Add("Ação") Dim Arquivo As New System.IO.StreamReader("C:\Users\rl\Desktop\" & Me.Text & ".txt", System.Text.Encoding.Default) While Arquivo.Peek() <> -1 dt.Rows.Add(Arquivo.ReadLine()) End While DataGridView2.DataSource = dt End Sub  
      Tela do gridview:

       
      Informação que consta no txt e que deve carregar no gridview:
       
      Primeiro arquivo

       
      Segundo arquivo:

    • By Fernando Rafael
      Olá a todos, atualmente estou quebrando a cabeça com 3 campos da geração do XML de NFCE/NFE, são eles:   <SignatureValue> ,  <DigestValue>   e  <X509Certificate>, como  faço para gerar esses 3 campos?
       
      Procurei na internet, mas não achei nada que me ajude, gostaria de fazer 100% com php e de preferência  manualmente (sem a utilização de classes prontas na qual é difícil de entender o código).
       
      Já tenho o certificado em PFX, e já gerei um certificado do tipo PEM.
       
      OBS 1: não precisam explicar ou mandar códigos de como inserir o conteúdo gerado nas tags <SignatureValue>  e  <X509Certificate>.
       
      OBS 2: O campo <DigestValue>  notei em alguns fóruns que é um retorno da Sefaz, é correto isso?
       
      ,
    • By edionas
      como posso exibir os dados do arquivo
      http://api.tcm.ce.gov.br/sim/1_0/municipios.xml
      em uma tabela?
    • By robertolsilva
      Estou tentando importar um xml para mysql, porem, ele importa tudo certo, porem, so importa o primeiro produto, nao tras do segundo pra frente. Sera que alguem pode me ajudar?
      Segue abaixo o script:
       
       
      <?php
      //import.php
      sleep(3);
      $output = '';
      if(isset($_FILES['file']['name']) &&  $_FILES['file']['name'] != '')
      {
       $valid_extension = array('xml');
       $file_data = explode('.', $_FILES['file']['name']);
       $file_extension = end($file_data);
       if(in_array($file_extension, $valid_extension))
       {
        $data = simplexml_load_file($_FILES['file']['tmp_name']);
        $connect = new PDO('mysql:host=localhost;dbname=yemos_back','root', '');
        $query = "
        INSERT INTO tbsaida
         (tbsaida_pedcli, tbsaida_statusped, tbsaida_dt_solic, separacaoDtLimite, separacaoPrioridade, transportadora, tbsaida_idcli, tbsaida_cnpj, tbsaida_destinatario, cnpj, termosCondicoes, tbsaida_prod_codigo, tbsaida_prod_descricao, tbsaida_qtde_solic)
         VALUES(:numPedido, :status, :dtemissao, :separacaoDtLimite, :separacaoPrioridade, :transportadora, :erazaoSocial, :tbsaida_cnpj, :destinatario, :cnpj, :termosCondicoes, :codigo, :descricao, :qtde);
        ";
        $statement = $connect->prepare($query);
        for($i = 0; $i < count($data); $i++)
        {
         $statement->execute(
          array(
           ':numPedido'   => $data->pedido[$i]->numPedido,
           ':status'  => $data->pedido[$i]->status,
           ':dtemissao'  => $data->pedido[$i]->dtEmissao,
           ':separacaoDtLimite' => $data->pedido[$i]->separacaoDtLimite,
           ':separacaoPrioridade'   => $data->pedido[$i]->separacaoPrioridade,
           ':transportadora'   => $data->pedido[$i]->transportadora,
           ':erazaoSocial'   => $data->pedido[$i]->erazaoSocial,
           ':tbsaida_cnpj'   => $data->pedido[$i]->ecnpj,
           ':destinatario'   => $data->pedido[$i]->razaoSocial,
           ':cnpj'   => $data->pedido[$i]->cnpj,
           ':termosCondicoes'  => $data->pedido[$i]->termosCondicoes,
           ':codigo'   => $data->pedido[$i]->produto->codigo,
           ':descricao'   => $data->pedido[$i]->produto->descricao,
           ':qtde'   => $data->pedido[$i]->produto->qtde
          )
         );
        }
        $result = $statement->fetchAll();
        if(isset($result))
        {
         $output = '<div class="alert alert-success">Import Data Done</div>';
        }
       }
       else
       {
        $output = '<div class="alert alert-warning">Invalid File</div>';
       }
      }
      else
      {
       $output = '<div class="alert alert-warning">Please Select XML File</div>';
      }
      echo $output;
      ?>
       
    • By eduardohaag
      Olá,
      Mais uma vez aqui estou eu com uma duvida que não estou conseguindo resolver.
      Estou desenvolvendo um ERP para a grafica da minha esposa. Nesse sistema existe um modulo que registra o tempo trabalhado.
      Para fazer isso existe um botão no formulário principal, que quando é clicado salva a hora na variável entrada, e quando clicado novamente ele registra no banco de dados o intervalo entre a entrada e saida.
      Até ai tudo ok. Porém as vezes a pessoa sai e esquece de clicar para registrar a saida.
       
      Então gostaria de fazer com que a cada 5 minutos fosse verificado se teve alteração na posição do ponteiro do mouse, porém permitindo que o usuário possa usar o programa.
       
      Procurando na internet descobri que para isso o melhor seria usar uma thread para fazer essa verificação da posição do mouse em segundo plano já que seria executado a cada 5 minutos e dessa forma travaria a execução do form principal.
       
      O problema está que quando ele detecta que mouse ficou parado por mais de 5 minutos e executa o codigo que salvo o intervalo no banco de dados acontece esse erro quando chega na linha "btEntrada.Text = "Registrar Entrada"" : "System.InvalidOperationException: 'Operação entre threads inválida: controle 'ToolStrip1' acessado de um thread que não é aquele no qual foi criado.'
       
      Li que tenho que usar algo como invoke e delegate, mas mesmo estudando não consegui entender como implementar.
      meu codigo é o seguinte:
       
      Imports System.ComponentModel Public Class Principal_content Dim saida As DateTime Dim tempo As TimeSpan Dim entrada As DateTime Dim ponteiro As Point Sub GerPonto() Do Threading.Thread.Sleep(5000) If ponteiro = Cursor.Position Then Call registraponto() End If ponteiro = Cursor.Position Loop End Sub Private Sub btEntrada_Click(sender As Object, e As EventArgs) Handles btEntrada.Click Call registraponto End Sub Sub registraponto() Dim trd = New Threading.Thread(AddressOf GerPonto) If btEntrada.Text = "Registrar Entrada" Then entrada = FormatDateTime(Now) btEntrada.Text = "Registrar Saida" btEntrada.ToolTipText = "Registrar Saida" btEntrada.Image = My.Resources.appointment_new_Ativo btEntrada.ForeColor = Color.Lime trd.Start() Else trd.Abort() saida = Now tempo = saida.Subtract(entrada) sql = "INSERT INTO ponto (Data, Entrada, Saida, Segundos) VALUES (#" & Format(entrada, "MM/dd/yyyy") & "#, #" & Format(entrada, "hh:mm:ss") & "#, #" & Format(saida, "hh:mm:ss") & "#, " & Replace(FormatNumber(tempo.TotalSeconds, 0, TriState.False, TriState.False, TriState.False), ",", ".") & ")" btEntrada.Text = "Registrar Entrada" btEntrada.Text = "Registrar Entrada" btEntrada.Image = My.Resources.appointment_new_desativo btEntrada.ForeColor = Color.Red AcessoDB.ExecutarComando(sql, CommandType.Text, Nothing, AcessoDB.TipoDeComando.ExecuteNonQuey) End If End Sub End Class  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.