XML 애플리케이션
- 이전 페이지 AJAX 데이터베이스
- 다음 페이지 AJAX 예제
이 장에서는 XML, HTTP, DOM 및 JavaScript를 사용하여 HTML 애플리케이션을 구현하는 방법을 설명합니다。
사용하는 XML 문서
이 장에서는 "music_list.xml"의 XML 파일입니다。
XML 데이터를 HTML 테이블에 표시합니다
이 예제에서는 각 <TRACK> 요소를 순회하며, 그런 다음 HTML 테이블에 <ARTIST>과 <TITLE> 요소의 값을 표시합니다:
예제
<html> <body> <table id="demo"></table> <script> function loadXMLDoc() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this); } }; xmlhttp.open("GET", "music_list.xml", true); xmlhttp.send(); } function myFunction(xml) { var i; var xmlDoc = xml.responseXML; var table="<tr><th>가수</th><th>곡</th></tr>"; var x = xmlDoc.getElementsByTagName("TRACK"); for (i = 0; i <x.length; i++) { table += "<tr><td>" + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</td></tr>"; } document.getElementById("demo").innerHTML = table; } </script> </body> </html>
JavaScript와 XML DOM의 사용에 대한更多信息는 다음을 참조하세요: DOM 개요。
HTML div 요소에 첫 번째 곡 표시
이 예제는 id="displayMUSIC"의 HTML 요소에 첫 번째 곡을 표시하는 함수를 사용합니다:
예제
displayMUSIC(0); function displayMUSIC(i) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myFunction(this, i); } }; xmlhttp.open("GET", "music_list.xml", true); xmlhttp.send(); } function myFunction(xml, i) { var xmlDoc = xml.responseXML; x = xmlDoc.getElementsByTagName("TRACK"); document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>곡목:" + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>아티스트: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>앨범: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>국가: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>회사: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>연도: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
곡 간 네비게이션
이 예제에서 곡 간의 네비게이션을 위해 next()와 previous() 함수를 추가하세요:
예제
function next() { // 마지막 곡에 도달하지 않았다면 다음 곡을 표시 if (i < x.length-1) { i++; displayMUSIC(i); } } function previous() { // 첫 번째 곡에 도달하지 않았다면 이전 곡을 표시 if (i > 0) { i--; displayMUSIC(i); } }
곡 클릭 시 앨범 정보 표시
이 예제는 사용자가 특정 곡을 클릭할 때 앨범 정보를 어떻게 표시하는지 보여줍니다:
예제
function displayMUSIC(i) { document.getElementById("showMUSIC").innerHTML = "<ul>" + "<li>곡목:" + x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "</li>" + "<li>아티스트: " + x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "</li>" + "<li>앨범: " + x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "</li>" + "<li>국가: " + x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "</li>" + "<li>회사: " + x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "</li>" + "<li>연도: " + x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "</li>" + "</ul>"; }
- 이전 페이지 AJAX 데이터베이스
- 다음 페이지 AJAX 예제