Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel o rei

[Resolvido] problema com xml

Recommended Posts

Tenho esse xml

O erro provavelmente está na sintaxe do xml.

Usei a ferramenta check sintax no documento xml e apareceu isso:

1087: Syntax error: extra characters found after end of program.

 

<?xml version="1.0"?>
<level id="0" name="introducao">
<circulo id="0" size="100" x="40" y="40" obj="1"/>
<box id="0" width="100" height="200" x="40" y="50" obj"2"/>


</level>

O meu script em actionscript tem quase 200 linhas e só vou por a parte que interessa.

 

 var meuURL:URLRequest = new URLRequest("jogo.xml");
	var infoXML:URLLoader = new URLLoader();
 infoXML.load( meuURL );
	infoXML.addEventListener( Event.COMPLETE, leiaXML );
function leiaXML(e:Event){
	trace('carregado');
	infoXML.load( meuURL );var meuXML:XML = new XML( infoXML.data );
	for(var i:Number = 1 ; i <= meuXML.level[0].circle.length -1 ; i++ ){


	}

}


Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, o erro de sintaxe do xml foi resolvido.

Parte do meu script ficou assim

 var meuURL:URLRequest = new URLRequest("jogo.xml");
var infoXML:URLLoader = new URLLoader();
infoXML.load( meuURL );
infoXML.addEventListener( Event.COMPLETE, leiaXML );
function leiaXML(e:Event){
trace('carregado');
var meuXML:XML = new XML( infoXML.data );
for(var i:Number = 1 ; i <= meuXML.level[0].circle.length -1 ; i++ ){


}

}

 

 <?xml version="1.0"?> <level id="0" naame="introducao"> <circulo id="0" size="100" x="40" y="40" obj="1"/> <box id="0" width="100" height="200" x="40" y="50" obj="2"/> </level> 

 

O OUTPUT

 

carregado

TypeError: Error #1010: Um termo é indefinido e não tem propriedades.

at jg/leiaXML()

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at flash.net::URLLoader/onComplete()

 

 

 

Eu comentei o for:

 

for(var i:Number = 1 ; i <= meuXML.level[0].circle.length -1 ; i++ ){

 

 

}

 

E parou o erro. Só que eu preciso desse for. meuXML.level.circle.lenght deve ser 1. O que aconteceu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu erro ta no infoXML em vez de fazer e.data

 

Você ta trabalhando com Eventos, e não ta fazendo mais como action script 2

 

Abraços

 

Não intendi a parte que que não estou fazendo mais como action script 2

 

O script que postei é apenas uma parte do meu package.

 

Quando eu disse que 'comentei um for' foi que botei entre /* */ .

 

Tem esse tópico que criei com o mesmo problema.http://forum.imasters.com.br/index.php?/topic/420838-como-contar-o-numero-de-tags-xml/page__pid__1658576__st__0entry1658576

 

Eu criei quando vi que ninguem respondeu esse tópico. Eu comecei com uma dúvida e fui para outra, ai criei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como carregar XML com AS 3

 

//cria o objeto com o endereço(URL) a ser carregado
var endereco:URLRequest = new URLRequest("agenda.xml")

//cria o objeto que carregará
var loader:URLLoader = new URLLoader();

function onComplete(event:Event) {
var agenda = new XML(event.target.data);
var total = agenda.pessoa.length();
for (var i = 0; i < total; i++) {

	//os atributos dos nós são acessado com um "@" antes no nome
	trace('cod: ' + agenda.pessoa[i].@cod);

	//os valores do nós são acessado pelo próprio nome
	trace('nome: ' + agenda.pessoa.nome[i]);
	trace('fone: ' + agenda.pessoa.telefone[i]);
	trace('fone: ' + agenda.pessoa.endereco[i]);
	trace('---------------------');
}
}

//adiciona a função ao Listener
loader.addEventListener(Event.COMPLETE, onComplete);

//carrega o arquivo xml
loader.load(endereco);

 

Agenda:

<?xml version="1.0" encoding="utf-8"?>
<agenda>
<pessoa cod="1">
	<nome>Thiago de Oliveira Cruz</nome>
	<telefone>21 2222 5544</telefone>
	<endereco>Rua Sorocaba 34, apt 205</endereco>
</pessoa>
<pessoa cod="2">
	<nome>Toni Carreiro</nome>
	<telefone>21 1111 3344</telefone>
	<endereco>Rua Alopra 34, apt 205</endereco>
</pessoa>
<pessoa cod="3">
	<nome>Tonhão Jesuis</nome>
	<telefone>21 8888 5544</telefone>
	<endereco>Rua Marica 34, apt 205</endereco>
</pessoa>
<pessoa cod="4">
	<nome>Tyfany</nome>
	<telefone>21 9999 5544</telefone>
	<endereco>Rua Itauba 34, apt 205</endereco>
</pessoa>
</agenda>

 

Código original escrito pelo Eder Fortunato na parte de ActionScript 3.0

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema era causado pois não existe a propriedade length de meuXML.level[0].circle no xml length é um método e eu pensava que era igual ao Array.length.

Obrigado a todos. Problema resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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