Ir para conteúdo
Fórum Script Brasil
  • 0

Ler arquivo XML com níveis e subníveis


Waldinho

Pergunta

Olá, gente.
Tenho um arquivo XML com a seguinte estrutura:

<boletim>
	<cnpj>07246082000106</cnpj>
	<anoletivo>2016</anoletivo>
	<item>
		<aluno>Elias Mateus Araújo Freitas Veríssimo</aluno>
		<matricula>2923</matricula>
		<aluno_email></aluno_email>
		<pai>Gilmar Freitas da Silva</pai>
		<pai_email></pai_email>
		<pai_cpf>06703629803</pai_cpf>
		<mae>Elizete Araújo dos Santos</mae>
		<mae_email></mae_email>
		<mae_cpf>09393252840</mae_cpf>
		<responsavel>Gilmar Freitas da Silva</responsavel>
		<responsavel_email></responsavel_email>
		<responsavel_cpf>06703629803</responsavel_cpf>
		<turma>2015 Segundo Ano A - Manhã</turma>
		<curso>Ensino Fundamental - Fase 1</curso>
		<nivel>Segundo Ano</nivel>
		<disciplina>
			<nome_disciplina>Português</nome_disciplina>
			<etapa>
				<num_etapa>1</num_etapa>
				<nota1>9,6</nota1>
				<nota2>9,6</nota2>
				<nota3></nota3>
				<nota4></nota4>
				<nota5></nota5>
				<media></media>
				<recuperacao></recuperacao>
				<media_recuperacao>9,6</media_recuperacao>
				<faltas></faltas>
			</etapa>
			<etapa>
				<num_etapa>2</num_etapa>
				<nota1>9,0</nota1>
				<nota2>9,6</nota2>
				<nota3></nota3>
				<nota4></nota4>
				<nota5></nota5>
				<media></media>
				<recuperacao></recuperacao>
				<media_recuperacao>9,3</media_recuperacao>
				<faltas></faltas>
			</etapa>
			<etapa>
				<num_etapa>3</num_etapa>
				<nota1>9,2</nota1>
				<nota2>9,0</nota2>
				<nota3></nota3>
				<nota4></nota4>
				<nota5></nota5>
				<media></media>
				<recuperacao></recuperacao>
				<media_recuperacao>9,1</media_recuperacao>
				<faltas></faltas>
			</etapa>
			<etapa>
				<num_etapa>4</num_etapa>
				<nota1></nota1>
				<nota2></nota2>
				<nota3></nota3>
				<nota4></nota4>
				<nota5></nota5>
				<media></media>
				<recuperacao></recuperacao>
				<media_recuperacao></media_recuperacao>
				<faltas></faltas>
			</etapa>
			<mediaanual></mediaanual>
			<totalpontos></totalpontos>
			<pontosfinal>3,8E2</pontosfinal>
			<provafinal></provafinal>
			<recuperacaofinal></recuperacaofinal>
			<mediafinal></mediafinal>
			<resultado></resultado>
		</disciplina>
	</item>
</boletim>

Meu código ajax está assim:

$.ajax(
							{
								type:		'GET',
								url:		arq_xml,
								dataType:	'xml',
								// async:		false,
								error:		function(){ $("#files").html('<div class="alert alert-danger" role="alert">Não existe este arquivo na base de dados!</div>'); },
								// Caso tenha encontrato o arquivo, leio os dados do xml
								success:	function(xml){
												// Se existir um nó financeiro
												if ($(xml).find('boletim').length == 1) {
													// Pegando todos os dados dentro da variavel array do arquivo xml
			        								$(xml).find('boletim').each(function() {
			        										cnpj		=	$(this).find('cnpj').text();	//	variável para armazenar o cnpj
															anoletivo	=	$(this).find('anoletivo').text();	//	variável para armazenar o anoletivo
															if (cnpj == inputcnpj) {
																$(this).find('item').each(function(){
																		itemAluno.push(
																			{
																				aluno:				$(this).find('aluno').text(),
																				matricula:			$(this).find('matricula').text(),
																				aluno_email:		$(this).find('aluno_email').text(),
																				pai:				$(this).find('pai').text(),
																				pai_email:			$(this).find('pai_email').text(),
																				pai_cpf:			$(this).find('pai_cpf').text(),
																				mae:				$(this).find('mae').text(),
																				mae_email:			$(this).find('mae_email').text(),
																				mae_cpf:			$(this).find('mae_cpf').text(),
																				responsavel:		$(this).find('responsavel').text(),
																				responsavel_email:	$(this).find('responsavel_email').text(),
																				responsavel_cpf:	$(this).find('responsavel_cpf').text(),
																				turma:				$(this).find('turma').text(),
																				curso:				$(this).find('curso').text(),
																				nivel:				$(this).find('nivel').text(),
																				disciplina:			[
																										$(this).find('disciplina').each(function(){
																											itemDisciplina.push(
																												{
																													nome_disciplina:	$(this).find('nome_disciplina').text(),
																													etapa: 				[
																																			$(this).find('etapa').each(function(){
																																				itemEtapa.push(
																																					{
																																						num_etapa: 			$(this).find('num_etapa').text(),
																																						nota1:				$(this).find('nota1').text(),
																																						nota2:				$(this).find('nota2').text(),
																																						nota3:				$(this).find('nota3').text(),
																																						nota4:				$(this).find('nota4').text(),
																																						nota5:				$(this).find('nota5').text(),
																																						media:				$(this).find('media').text(),
																																						recuperacao:		$(this).find('recuperacao').text(),
																																						media_recuperacao:	$(this).find('media_recuperacao').text(),
																																						faltas:				$(this).find('faltas').text(),
																																					}
																																				)
																																			})
																																		]
																												}
																											)
																										})
																									]
																			}
																		)
																	}
																);
															}
															else{
																$("#files").html('<div class="alert alert-danger" role="alert">Este arquivo não pertente à escola selecionada.</div>');
																// alert('Este arquivo não pertente à escola selecionada.');
															}
														}
													);
												}
												else{
													$("#files").html('<div class="alert alert-danger" role="alert">Este não é um arquivo boletim válido!</div>');
													// alert('Este não é um arquivo financeiro válido!');
												}
											}
							}
						).done(
							function(){
								var qtdeItemAluno	=	itemAluno.length;
								// var qtdeDisciplinas	=	itemAluno[0]['disciplina'].length;
								// var qtdeEtapas		=	itemEtapa.length;
								// var qtdeDisciplinas	=	itemAluno[0]['disciplina'].length;
								// var qtdeEtapas		=	itemAluno[0]['disciplina'][0]['etapa'].length;
								$("#divProgress span").html('Salvando dados...');
								$("#progressbar").css('width','0%');
								$("#progressbar").html('0%');
								$("#progress-bar").show();
								$("#rowItens qtdeItens").html(qtdeItemAluno+' registros.');
								$("#rowItens").show();

								// alert(qtdeItemAluno+" "+qtdeDisciplinas+" "+qtdeEtapas);
								alert(itemAluno[0]['disciplina']);
							}
						);

O problema é que não estou conseguindo pegar os subníveis do xml. Alguém pode me dar uma ajudinha?

Obrigado.
 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...