Jump to content


Photo

Erro Lendo Xml Com Elemento Vazio


  • Faça o login para participar
19 replies to this topic

#1 ride

ride

    12 Horas

  • Usuários
  • 131 posts
  • Sexo:Não informado

Posted 29/12/2005, 16:46

o que esta errado aqui? o script para a execução quando lê um elemento xml que esta vazio. porque? ja li sobre elementos vazios, tentei colocar uma tag fechada <tag/> mas não adiantou.

xml
<?xml version="1.0" encoding="utf-8" ?> 
<ajax-response>
	<response type="object" id="tags">
  <item>
 	 <id>225</id>
 	 <tag>javascript</tag>
 	 <legend></legend>
 	 <keywords>linguagem programação</keywords>
  </item>
	</response>
</ajax-response>	

js
...
$('frm_tag').value = xmlObject.getElementsByTagName('tag')[0].firstChild.nodeValue;
$('frm_legend').value = xmlObject.getElementsByTagName('legend')[0].firstChild.nodeValue;
$('frm_keywords').value = xmlObject.getElementsByTagName('keywords')[0].firstChild.nodeValue;
...

http://centralti.com

#2 redstyle

redstyle

    Expert

  • Usuários
  • 540 posts
  • Sexo:Masculino

Posted 29/12/2005, 18:03

Acho que esse problema, acontece na hora que você não manda o header http correto.

Aconteceu isso comigo de responseXML retornar null mesmo com um arquivo xml válido. O problema era que ele não era chamado por uma nome algumnome.xml e sim como cria_xml.php?id=1

Então o header http vai errado, o que vc tem que fazer e mudar o header http.

Um exemplo com php seria
<?php
header("Content-Type: text/xml");
?>
<?xml version="1.0" encoding="utf-8" ?>
<ajax-response>
<response type="object" id="tags">
 <item>
  <id>225</id>
  <tag>javascript</tag>
  <legend></legend>
  <keywords>linguagem programação</keywords>
 </item>
</response>
</ajax-response>

Ve se é isso ai que está acontecendo.

Falowz!!

Conheça meu blog para Aprender Laravel (Framework PHP)


#3 ride

ride

    12 Horas

  • Usuários
  • 131 posts
  • Sexo:Não informado

Posted 29/12/2005, 19:09

Obrigado pela dica, eu havia esquecido de ajustar o header. Mas esse não era a causa do problema, continuou na mesma. Eu estou achando estranho porque um elemento vazio no xml poder ser montado na forma acima, mas elel ao invés de simplesmente ler como nulo ele trava o script.

Detalhes que não comentei, da parte do xml tudo normal, é exatamente o trecho de recuperação da tag xml vazia, quando ela tem conteúdo ele retorna os dados normalmente.

Edição feita por: ride, 29/12/2005, 19:11.

http://centralti.com

#4 redstyle

redstyle

    Expert

  • Usuários
  • 540 posts
  • Sexo:Masculino

Posted 30/12/2005, 21:47

Joga o valor no atributo assim.
<?xml version="1.0" encoding="utf-8" ?>
<ajax-response>
<response type="object" id="tags">
<item>
 <id value="225" />
 <tag value="javascript" />
 <legend value ="" />
 <keywords value="linguagem programação" />
</item>
</response>
</ajax-response>

Tenta resgatar o valor por getAttribute() assim:
$('frm_legend').value = xmlObject.getElementsByTagName('legend').getAttribute('value');

Ve ai se funciona.

Falowz!!

Ah.
o que vc está usando não funciona pq o node não existe, faz um teste usando um if e veja se existe o node, só para estudo sei lá.

T+

Edição feita por: redstyle, 30/12/2005, 21:50.

Conheça meu blog para Aprender Laravel (Framework PHP)


#5 ride

ride

    12 Horas

  • Usuários
  • 131 posts
  • Sexo:Não informado

Posted 31/12/2005, 01:21

legal, agora funcionou, não sabia ainda desta idéia de atributos do xml, andei lendo um pouquinho e agora vou dar uma rescrevida nos arquivos pra deixar melhorzinho. :) valeu ai pela ajuda.

só acrescentando um detalhe que ficou faltando, que seria o posicionamento do cursor. se alguém passar por aqui ...
$('frm_tag').value = xmlObject.getElementsByTagName('tag').item(0).getAttribute('value');;

http://centralti.com

#6 ride

ride

    12 Horas

  • Usuários
  • 131 posts
  • Sexo:Não informado

Posted 31/12/2005, 01:30

Uma pergunta, seria interessante uma montagem neste esquema abaixo? Os dados ao meu entender estão concisos, mas neste formato, isso pode me trazer algum tipo de problema, incompatibilidade algo assim? Ainda não me aprofundei muito no xml, por isso a dúvida.

<?php
header("Content-Type: text/xml");
?>
<?xml version="1.0" encoding="utf-8" ?>
<ajax-response>
<response type="object" id="tags">
<item>
 <tag id="225" legend="" keywords="linguagem programação">javascript</tag>
</item>
</response>
</ajax-response>

http://centralti.com

#7 redstyle

redstyle

    Expert

  • Usuários
  • 540 posts
  • Sexo:Masculino

Posted 31/12/2005, 09:39

Acho válido sim e até melhor usar dessa maneira, já que os dados que serão mostrados estão entre as tags e os atributos (que acho que vc está usando pra montar um link) como atributos mesmo.

Um exemplo

<?php
header("Content-Type: text/xml");
?>
<?xml version="1.0" encoding="utf-8" ?>
<ajax-response>
<response type="object" id="map">
<item>
<pos x="214" y="-100">Posição um</pos>
<pos x="327" y="20">Posição dois</pos>
<pos x="800" y="825">Posição três</pos>
</item
</response>
</ajax-response>

Nesse caso organizei para o texto irá aparecer pro usuário e x e y é o posicionamento em sim para gerar um link com query string por exemplo

falowz!!

Edição feita por: redstyle, 31/12/2005, 09:43.

Conheça meu blog para Aprender Laravel (Framework PHP)


#8 ride

ride

    12 Horas

  • Usuários
  • 131 posts
  • Sexo:Não informado

Posted 31/12/2005, 18:27

É, eu pensei exatamente desta forma, valeu ai.

Só tem uma coisa agora que eu não disse antes, ficou sem saber porque da erro ao ler um elemento vazio!? O lance do if nem tem como funcionar porque ele simplesmente trava o script quando encontra um elemento vazio.

Bom, ja achei uma nova forma de utilizar, mas se alguém souber porque do erro, posta ai, gostaria de saber. ;)
http://centralti.com

#9 redstyle

redstyle

    Expert

  • Usuários
  • 540 posts
  • Sexo:Masculino

Posted 01/01/2006, 18:39

É que você está pegando a tag pelo elemento, depois tenta pegar firstChild sendo que o "legend" não tem filho.

O que você pode tentar fazer pra testes (não sei se irá funcionar com xml) é
$('frm_legend').value = xmlObject.getElementsByTagName('legend')[0].innerHTML;

Falowz!

Edição feita por: redstyle, 01/01/2006, 18:39.

Conheça meu blog para Aprender Laravel (Framework PHP)


#10 ride

ride

    12 Horas

  • Usuários
  • 131 posts
  • Sexo:Não informado

Posted 05/01/2006, 00:00

ok, ja entendi, valeu ae, vou procurar ler mais sobre xml depois. :)
http://centralti.com

#11 Hélio Barbosa

Hélio Barbosa

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 11/02/2008, 15:04

ok, ja entendi, valeu ae, vou procurar ler mais sobre xml depois. :)


Tenta usar
var el = document.getElementsByTagName('tagQualquer');
if( el[0].hasChildNodes() )
 //possue nós...
else
 //não possui nós...


#12 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 11/02/2008, 15:20

¬_¬

Você olhou a data do post antes de responder ??!

De qualquer forma, bem-vindo ao fórum.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#13 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 18/09/2017, 04:46

Viagra Online No Precription cheap cialis Cialis 5mg Beipackzettel Where Can I Buy Proventil Inhaler Zithromax For Otitis Media In Children Below Skin Swelling Amoxicillin Allergy Treatment Buy Silagra Pills viagra cialis Misoprostol Effets
Purchase Isotretinoin Price In Internet cialis Cheap Viagra Super Active Plus
Buy Byetta Without Presciption
Cialis Pharmacie Lyon <a href=http://cialtobuy.com>cialis</a> Preis Fur Levitra 20 Mg

#14 LarPhozyHah

LarPhozyHah

    Super Veterano

  • Usuários
  • 14515 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 27/09/2017, 02:18

Cialis Y Eyaculacion Precoz Viagra Necesita Receta Medica Zithromax Cause Diarrhea online pharmacy Medicina Viagra Viagra Going Generic
Buy Cheap Atomoxetine cialis Amoxicillin 500 Clav K 125mg Treats
Keflex Expansion Joint Purchasing Clonidine cialis Viagra 200mg Online Price Canada Kamagra Tablets Online

#15 Miguceamma

Miguceamma

    MiguPenjisse

  • Usuários
  • 13201 posts

Posted 27/09/2017, 06:11

Dilantin Viagra 48 Ore online pharmacy Modgavil Worldwide Direct Bentyl Legally In Internet Amex Online Cyntra Viagara Radio Commercials
Finasteride Avodart Propecia online pharmacy Zithromax Out Of Pocket Cost Canadian Health Care Pharmacy Precose
Cialis Generika Gut Warfarin Without Prescription viagra cialis Cephalexin Side Effects Dogs




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq