잡동사니에도 사랑을

[21.10.20] exam02(02_xml) 본문

JAVA_EE/AJAX

[21.10.20] exam02(02_xml)

luvforjunk 2021. 10. 20. 10:52
728x90
반응형

////////exam02

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/common.css">
<link rel="stylesheet" href="../css/reset.css">
</head>
<body>
	<h1 class="title">$.ajax() 함수를 사용한 XML데이터 읽기 (2)</h1>
	<div class="exec">
		<input type="button" value="xml데이터 가져오기" id="mybtn" />
	</div>
	<div class="console" id="result"></div>

<script type="text/javascript" src="http://code.jquery.com/jquery-3.6.0.min.js"></script>
<script type="text/javascript">
$('#mybtn').click(function(){
	$.ajax({
		url: '../xml/xml02.xml',
		type: 'get',
		// 넘어가는 데이터가 없으니 Data는 생략
		dataType: 'xml', // xml로 가져올 것이다
		success: function(data){ //xml에 있는 데이터들이 여기로 들어온다
			$(data).find('subject').each(function(){
				var title = $(this).find('title').text();// $(data).find('subject') 안에서 each문을 돌려 
				var time = $(this).find('time').text();
				var teacher = $(this).find('teacher').text();
			
				// 화면에 출력하기 위해서 HTML 요소를 동적으로 생성
				var div = $('<div/>'); 
				var p1 = $('<p/>').html(title); 
				var p2 = $('<p/>').html(time);
				var p3 = $('<p/>').html(teacher);
				
				//메서드 체인
				div.append(p1).append(p2).append(p3);
				
				$('#result').append(div);
				$('#result').append('<hr/>');
				// <hr/>경계선을 만들어서 구분해준다
				
			}); //하나가 아니라 여러 개이니 subject를 기준으로 each를 이용해 for문(반복문)을 돌려준다
		},
		error: function(err){
			alert(err);
		}
	});
});
</script>
</body>
</html>

 

 

////////xml02.xml

<?xml version="1.0" encoding="UTF-8"?>
<school>
   <subject>
      <title>Javascript+jQuery+Ajax</title>
        <time>매주 월/수/금 오후 7시00분~10시00분</time>
        <teacher>홍길동</teacher>
   </subject>
   <subject>
        <title>HTML5+CSS3 기반의 반응형 웹</title>
        <time>매주 화/목 오후 7시00분~10시00분</time>
        <teacher>라이언</teacher>
    </subject>
    <subject>
        <title>Java 입문에서 활용까지</title>
        <time>매주 화/목 오후 7시00분~10시00분</time>
        <teacher>코난</teacher>
    </subject>
</school>

<!-- 반복문을 돌려줘야 한다는 걸 파악해라 -->

 

 

[결과]

 

 

 

 

 

 

 

 

728x90
반응형