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 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  
    • By s3c0
      Prezados,
       
      boa noite. Estou precisando de um help!
       
      possuo um script que retorna o seguinte XML:
       
      <tns:phpsysinfo xmlns:tns="http://phpsysinfo.sourceforge.net/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://phpsysinfo.sourceforge.net/ phpsysinfo3.xsd"> <Generation version="3.3.0" timestamp="1554324372"/> <Options tempFormat="c" byteFormat="auto_binary" datetimeFormat="utc" refresh="60000" threshold="90"/> <Vitals Hostname="WIN" IPAddr="127.0.0.1" Kernel="6.1.7600 (64-bit)" Distro="Microsoft Windows Server 2008 R2 Enterprise" Distroicon="WinVista.png" Uptime="204091" Users="0" LoadAvg="" CPULoad="0" SysLang="Portuguese - Brazil (1046)" CodePage="windows-1252" Processes="56" OS="WINNT"/> <Network/> <Hardware Name="VMware, Inc. VMware Virtual Platform"> <PCI> <Device Name="PCI standard PCI-to-PCI bridge" Count="2"/> <Device Name="PCI Express standard Root Port" Count="32"/> <Device Name="Standard AHCI 1.0 Serial ATA Controller" Manufacturer="Standard AHCI 1.0 Serial ATA Controller"/> <Device Name="Intel(R) PRO/1000 MT Network Connection" Manufacturer="Intel"/> <Device Name="Intel(R) PRO/1000 MT Network Connection #2" Manufacturer="Intel"/> <Device Name="Intel(R) PRO/1000 MT Network Connection #3" Manufacturer="Intel"/> <Device Name="LSI Adapter, SAS 3000 series, 8-port with 1068" Manufacturer="LSI"/> <Device Name="Intel 82371AB/EB PCI to ISA bridge (ISA mode)" Manufacturer="Intel"/> <Device Name="VMware SVGA 3D" Manufacturer="VMware, Inc."/> <Device Name="Intel(R) 82371AB/EB PCI Bus Master IDE Controller" Manufacturer="Intel"/> <Device Name="VMware VMCI Bus Device" Manufacturer="VMware, Inc."/> <Device Name="Intel 82443BX Pentium(R) II Processor to PCI Bridge" Manufacturer="Intel"/> </PCI> <IDE> <Device Name="NECVMWar VMware SATA CD00 ATA Device"/> </IDE> <SCSI> <Device Name="VMware Virtual disk SCSI Disk Device" Capacity="128849011200"/> </SCSI> <CPU> <CpuCore Model="Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz" CpuSpeed="3400" Cache="0"/> <CpuCore Model="Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz" CpuSpeed="3400" Cache="0"/> <CpuCore Model="Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz" CpuSpeed="3400" Cache="0"/> <CpuCore Model="Intel(R) Xeon(R) CPU E3-1231 v3 @ 3.40GHz" CpuSpeed="3400" Cache="0"/> </CPU> </Hardware> <Memory Free="1720385536" Used="2574114816" Total="4294500352" Percent="60"> <Swap Free="3048210432" Used="685768704" Total="3733979136" Percent="18"> <Mount MountPointID="1" FSType="swap" Name="SWAP" Free="3048210432" Used="685768704" Total="3733979136" Percent="18" MountPoint="C:\pagefile.sys"/> </Swap> </Memory> <FileSystem> <Mount MountPointID="1" FSType="" Name="Removable Disk (3 1/2 in.)" Free="0" Used="0" Total="0" Percent="0" MountPoint="A:"/> <Mount MountPointID="2" FSType="NTFS" Name="Local Disk" Free="732983296" Used="128009076736" Total="128742060032" Percent="99" MountPoint="C:"/> <Mount MountPointID="3" FSType="" Name="Compact Disc" Free="0" Used="0" Total="0" Percent="0" MountPoint="D:"/> </FileSystem> <MBInfo/> <UPSInfo/> <Plugins/> <Errors/> </tns:phpsysinfo> tenho o seguinte código em ASP:
       
      <% url_server = "http://127.0.0.1/xml.php?plugin=complete" Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP") Call xmlhttp.open("GET", url_server, false) Call xmlhttp.send() strRetorno = xmlhttp.responseText Set oXmlDom = Server.CreateObject("Msxml2.DOMDocument.3.0") oXmlDom.loadXML strRetorno Set oNodes = oXmlDom.selectNodes("tns:phpsysinfo/FileSystem/Mount") for each oNode in oNodes response.write "Cache " & oNode.selectSingleNode("Percent").Text next Set oXmlDom = Nothing %> ao tentar trazer alguns valores, sempre me retorna o seguinte erro:
       
      Erro de tempo de execução do Microsoft VBScript erro '800a01a8'
      Objeto necessário: 'oNode.selectSingleNode(...)'
       
      Preciso trazer os valores de:
      CPU
      Memory
      HD
       
      Alguém teria alguma dica de como consigo resolver?
       
      Agradeço a atenção de todos.
    • By Gustavo2503
      fgets() não funciona em xml versão 4.00, só funciona na versão 3.10
      $arquivo = $_FILES['arquivo']["tmp_name"]; $xml = fopen($arquivo, 'r'); while(!feof($xml)){ $linha = fgets($xml); if (!$linha){ $linha = "Erro"; } } echo $linha; Ele retorna "Erro" quando o xml está na versão 4.00. Como arruma isso?
    • By DANIEL ALVES BARBOSA
      Na verdade não é uma dúvida e sim um exemplo de código que fiz para capturar os atributos do XML e ler com php.
       
      <?xml version="1.0" encoding="utf-8"?> <FDBS Version="15"> <Manager UpdatesRegistry="True"> <TableList> <Table Name="FDQuery2" SourceName="ORCAMENTO_ITENS" SourceID="1" TabID="0" EnforceConstraints="False" MinimumCapacity="50"> <ColumnList> <Column Name="ID" SourceName="ID" SourceID="1" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OInKey="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID"/> <Column Name="ITEM" SourceName="ITEM" SourceID="2" DataType="Int32" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ITEM"/> <Column Name="ID_PRODUTO" SourceName="ID_PRODUTO" SourceID="3" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_PRODUTO"/> <Column Name="ID_ORCAMENTO" SourceName="ID_ORCAMENTO" SourceID="4" DataType="Int32" Searchable="True" Base="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_ORCAMENTO"/> <Column Name="QUANTIDADE" SourceName="QUANTIDADE" SourceID="5" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="QUANTIDADE" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_UNITARIO" SourceName="VALOR_UNITARIO" SourceID="6" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_UNITARIO" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_CUSTO" SourceName="VALOR_CUSTO" SourceID="7" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_CUSTO" SourcePrecision="18" SourceScale="6"/> <Column Name="VALOR_PRODUTOS" SourceName="VALOR_PRODUTOS" SourceID="8" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="VALOR_PRODUTOS" SourcePrecision="18" SourceScale="6"/> <Column Name="TOTAL_ITEM" SourceName="TOTAL_ITEM" SourceID="9" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="TOTAL_ITEM" SourcePrecision="18" SourceScale="6"/> <Column Name="DESCONTO" SourceName="DESCONTO" SourceID="10" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESCONTO" SourcePrecision="18" SourceScale="6"/> <Column Name="ACRESCIMO" SourceName="ACRESCIMO" SourceID="11" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ACRESCIMO" SourcePrecision="18" SourceScale="6"/> <Column Name="ACRESCIMO_RATEIO" SourceName="ACRESCIMO_RATEIO" SourceID="12" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ACRESCIMO_RATEIO" SourcePrecision="18" SourceScale="6"/> <Column Name="DESCONTO_RATEIO" SourceName="DESCONTO_RATEIO" SourceID="13" DataType="FmtBCD" Precision="18" Scale="6" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESCONTO_RATEIO" SourcePrecision="18" SourceScale="6"/> <Column Name="CANCELADO" SourceName="CANCELADO" SourceID="14" DataType="AnsiString" Size="1" Searchable="True" AllowNull="True" FixedLen="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="CANCELADO" SourceSize="1"/> <Column Name="MOVIMENTA_ESTOQUE" SourceName="MOVIMENTA_ESTOQUE" SourceID="15" DataType="AnsiString" Size="1" Searchable="True" AllowNull="True" FixedLen="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="MOVIMENTA_ESTOQUE" SourceSize="1"/> <Column Name="DESC_ACRES" SourceName="DESC_ACRES" SourceID="16" DataType="AnsiString" Size="15" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="DESC_ACRES" SourceSize="15"/> <Column Name="ID_GRADE_ITENS" SourceName="ID_GRADE_ITENS" SourceID="17" DataType="Int32" Searchable="True" AllowNull="True" Base="True" OAllowNull="True" OInUpdate="True" OInWhere="True" OriginTabName="ORCAMENTO_ITENS" OriginColName="ID_GRADE_ITENS"/> </ColumnList> <ConstraintList/> <ViewList/> <RowList> <Row RowID="0"> <Original ID="1" ITEM="1" ID_PRODUTO="1" ID_ORCAMENTO="1" QUANTIDADE="1" VALOR_UNITARIO="2.5" VALOR_CUSTO="0" VALOR_PRODUTOS="2.5" TOTAL_ITEM="2.5" DESCONTO="0" ACRESCIMO="0" ACRESCIMO_RATEIO="0" DESCONTO_RATEIO="0" CANCELADO="N" MOVIMENTA_ESTOQUE="N" DESC_ACRES=""/> </Row> <Row RowID="1"> <Original ID="2" ITEM="1" ID_PRODUTO="1" ID_ORCAMENTO="2" QUANTIDADE="1" VALOR_UNITARIO="2.5" VALOR_CUSTO="0" VALOR_PRODUTOS="2.5" TOTAL_ITEM="2.5" DESCONTO="0" ACRESCIMO="0" ACRESCIMO_RATEIO="0" DESCONTO_RATEIO="0" CANCELADO="N" MOVIMENTA_ESTOQUE="N" DESC_ACRES=""/> </Row> </RowList> </Table> </TableList> <RelationList/> <UpdatesJournal> <Changes/> </UpdatesJournal> </Manager> </FDBS>  
      Arquivo php
       
      <?php $xml = simplexml_load_file('uploads/teste3.xml'); foreach ($xml->children()->children()->children()->children() as $node) { foreach ($node as $value) { foreach ($value as $value2) { $id2 = "NULL"; $item2= $value2['ITEM']; $id_produto2 = $value2['ID_PRODUTO']; $id_orcamento2 = $value2['ID_ORCAMENTO']; $id_quantidade2 = $value2['QUANTIDADE']; $valor_unitario2 = $value2['VALOR_UNITARIO']; $valor_custo2 = $value2['VALOR_CUSTO']; $valor_produtos2 = $value2['VALOR_PRODUTOS']; $total_item2 = $value2['TOTAL_ITEM']; $desconto2 = $value2['DESCONTO']; $acrescimo2 = $value2['ACRESCIMO']; $acrescimo_rateio = $value2['ACRESCIMO_RATEIO']; $desconto_rateio = $value2['DESCONTO_RATEIO']; $cancelado2 = $value2['CANCELADO']; $cancelado2 = "'$cancelado2'"; $movimenta_estoque2 = $value2['MOVIMENTA_ESTOQUE']; $movimenta_estoque2 = "'$movimenta_estoque2'"; $desconto_acres = "NULL"; $id_grade_itens = "NULL"; echo $id2."<br>".$item2."<br>".$id_produto2."<br>".$id_orcamento2."<br>".$id_quantidade2."<br>".$valor_unitario2."<br>... etc"."<br>"; } } }  
×

Important Information

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