Jump to content
Fórum Script Brasil
  • 0

Ler arquivo XML com níveis e subníveis


Waldinho
 Share

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...