Ir para conteúdo

Arquivado

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

MarKteus

XmlTextReader não esta conseguindo ler o arquivo XML

Recommended Posts

Olá

 

Alguém sabe o motivo do XmlTextReader não estar mais recuperando o arquivo?

 

Estava tudo OK

Abaixo segue o trecho que funcionava perfeitamente o arquivo especificado em XmlFileName existe e a pasta xmlDataRepository também

 

xmltextreadererro1.jpg

 

Mas no meu último debug percebi que o XmlMestre esta vindo vazio, o que ocasiona um erro

xmltextreadererro2.jpg

Alguém sabe o motivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, mas pelo visto, o código é o mesmo. Você o alterou? Qual a mensagem de erro completa? Tem certeza que o caminho direcionado está correto? Desde o nome do path ao nome do arquivo xml?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí é que tá, não da erro passa normal conforme o print que mandei.
Vejo outro print.
Note XmlMestre = null pois ainda não passei pela linha


PrintDebug1.jpg

 

Agora após passar pela linha:

PrintDebug2.jpg

Abaixo segue o conteúdo do arquivo:

<?xml version="1.0" encoding="utf-8"?>
<Id>10</Id>
<Nome>Louis Lane</Nome>
<DataContato>2015-11-20T14:54:21.4759902-02:00</DataContato>
<Login>louis@email.com</Login>
<Senha>A152E841783914146E4BCD4F39100686</Senha>
<ConfirmarSenha>A152E841783914146E4BCD4F39100686</ConfirmarSenha>
<NomeId>10</NomeId>
</Registro>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você debuga, o valor da variável só irá aparecer quando você "passa para a próxima linha", isso não é erro. Testei aqui com qualquer variável e é a mesma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas foi isso que eu disse "...Aí é que tá, não da erro passa normal conforme o print que mandei..."

Depois que o debug passa pela linha o valor de XmlMestre vai de null para None

A questão é => XmlTextReader não esta conseguindo ler o arquivo XML, ou consegue ler mas não popula a instancia

Por que?


Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi agora. Já tentou usar

xmlMestre.Read();

depois de inicializá-lo?

XmlTextReader xml = new XmlTextReader("arquivo.xml");
xml.Read();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será ?

.Read() seria pra ler conteúdo, mas a instância não está sendo preenchido.
O detalhe é que tava funcionando, não se talvez algum permissão, tenha sido alterada de forma automática afinal, Windows é windows né e seus updates automaticos as vezes,... da uma complicada no ambiente.

 

Talvez uma forçada algo parecido com um .bind sei lá,... poderia resolver ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

MarKteus, não sei.

 

Na verdade, para manipulação de arquivos Xml eu uso o XmlDocument. Já com XmlTextReader, sempre vejo exemplos usando o método .Read() após a inicialização, já que é próprio da funcionalidade da classe.

 

http://www.vitormendes.com.br/2014/03/13/xmldocument-e-xmltextreader/

 

Mas espero que alguém possa te ajudar melhor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A titulo de informação e aprendizado, o XmlTextReader parece consumir menos recursos que XmlDocument na execução do processo de leitura de xml.

Bom consegui resolver o problema com Clean e um Rebuild.

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Jack Oliveira
      Boa noite galera..
       
      Estou tentando gerar um sitemap com php
       
      So que tenho que por o limit 1200 
       
      mais que isso ele nao gera e se deixar sem limit 
       
      Obs: o banco de dados contem mais de 10 mil registros
      <?php // Data e hora atual $datetime = new DateTime(date('Y-m-d H:i:s')); // A linha abaixo me retornará uma data no seguinte formato: 2017-11-22T00:06:23-02:00 $date = $datetime->format(DateTime::ATOM); // ISO8601 // Gera o arquivo XML do sitemap $xml = '<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <url> <loc>'.ConfigPainel('site_url').'</loc> <lastmod>'.$date.'</lastmod> <changefreq>weekly</changefreq> <priority>1.00</priority> </url>'; $Query = DBRead('cidades','*',"WHERE status ='1' ORDER BY nome ASC"); if (is_array($Query)) { foreach ($Query as $modcid) { $xml .=' <url> <loc>'.ConfigPainel('site_url').''.$modcid['subdominio'].'/</loc> <lastmod>'.$date.'</lastmod> <changefreq>weekly</changefreq> <priority>1.00</priority> </url>'; //$QueryR = DBRead('directory_guia', '*',"WHERE cidade='{$modcid['id']}' AND status='1' ORDER BY titulo ASC"); $QueryR = DBRead('directory_guia', '*',"WHERE cidade='{$modcid['id']}' AND status='1' ORDER BY titulo ASC LIMIT 1200"); if (is_array($QueryR)) { foreach ($QueryR as $v) { $Queryc = DBRead('cidades', '*',"WHERE id='{$v['cidade']}' ORDER BY nome ASC")[0]; if(empty($v['slug'])) { }else{ $urlseo = ''.ConfigPainel('site_url').''.$Queryc['subdominio'].'/list/'.$v['slug'].'/'; $xml .=' <!-- INICIO DA EMPRESA '.TRIM($v['titulo']).' --> <url> <loc>'.$urlseo.'</loc> <lastmod>'.$date.'</lastmod> <changefreq>weekly</changefreq> <priority>0.85</priority> </url> <!-- FIM DA EMPRESA '.TRIM($v['titulo']).' --> '; } }} }} $xml .= ' </urlset>'; // Abre o arquivo ou tenta cria-lo se ele não exixtir $arquivo = fopen('../sitemap.xml', 'w'); if (fwrite($arquivo, $xml)) { Redireciona('./index.php?sucesso'); } else { Redireciona('?erro'); } fclose($arquivo); // Compactar arquivo sitemap para GZIP $data = implode("", file("sitemap.xml")); $gzdata = gzencode($data, 9); $fp = fopen("sitemap.xml.gz", "w"); fwrite($fp, $gzdata); fclose($fp); // Envia para o Google o novo sitemap gerado $urlSitemap = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".ConfigPainel('site_url').""; // Arquivos a serem enviados $Files = ['sitemap.xml', 'sitemap.xml.gz']; // Envia os dois arquivos sitemap gerados para a URL do Google foreach ($Files as $file) { $url = $urlSitemap . $file; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); } ?> Caso ouve outra forma que eu possa gerar este sitemap com php fico grato...
    • Por mr22robot
      Ola caros amigos. 
      Estou com uma dúvida aqui que embora nao tenho achado ainda uma resposta, acredito que haja.
      Estou estudando a tão sonhada linguagem de programação asp.net core mvc. Linguagem essa que demorei 5 anos pra iniciar os estudos rsrs.
      Mas estou agarrado em uma situação. 
      Estou usando como base de dados nos meus estudos um banco Oracle. Que já tem algumas informações nele. Utilizei o SCAFFOLD para criar as classes e o contexto baseado no banco e tabelas existentes. 
      Porem agora na fase das consultas, estou perdido em como utilizar o IN que eu utilizo no oracle; no LINQ.
      Ex: 
      SELECT CODPROD,DESCRICAO FROM PRODUTO WHERE CODPROD IN(1,2,3,4,5,6) Como eu utilizo esse filtro com uma restrição de códigos de produtos? no caso o where codprod in(1,2,3,4,5,6) ?.
      Desde já obrigado pela ajuda.
    • Por luis0101010
      1.      Programe uma função que recebe um número inteiro e verifica se todos os dígitos deste número são iguais ou diferente e liste eles em ordens crescentes.
      Obs: Código fonte com no mínimo de 10 dígitos.
       
      Como exemplo, os números 456, −235, e 5 satisfazem esta condição, enquanto que o número 6 não.
       
      2.      Crie também a função main que recebe o valor do número digitado pelo usuário e exibe na tela uma mensagem informando se os dígitos deste número são iguais.
       
      Exemplo:
      --Exemplo 1:
      Informe um número:
      -555
      Numero informado possui todos os dígitos iguais
      --Exemplo 2:
      Informe um número:
      67
      Número informado não possui todos os dígitos iguais
    • Por marcelo.ourico
      Estou precisando fazer o envio de um XML via webservice. Estou utilizando PHP 7.4 e nuSoap.

      Porém esse XML de envio possui várias tags com hífen. Por exemplo <tag-name></tag-name>.
       
      Esse hífen tem sido um problema, principalmente por que eu não posso enviar o XML como string. Apenas como objeto. Então imaginem isso:
       
      $objeto = simplexml_load_string($string_xml);  
      Se simplesmente eu tentar resgatar o valor da TAG já dá erro...
       
      $campo1= $objeto->tag-name;
      O erro ocorre em função de que o hífen é um caractere reservado do PHP... Então como resolver?

      Independente disso, quando eu tento fazer o envio via nuSoap, também recebo erro abaixo:
      wsdl->getTypeDef('tag-name', 'http://xyz.abr...')
      wsdl->serializeType('tag-name', 'tag-name', Object(SimpleXMLElement), '

      Alguém já passou por isso? Sabe como resolver? Pode dar uma dica?
×

Informação importante

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