JavaScript
文章目录
*
–
+ JavaScript
+ 70 JavaScript Ajax
+
* 70.9 XML 应用程序
*
– 70.9.1 使用的 XML 文档
– 70.9.2 在 HTML 表格中显示 XML 数据
– 70.9.3 在 HTML div 元素中显示第一首曲子
– 70.9.4 在曲目之间导航
– 70.9.5 在点击歌曲时显示专辑信息
70 JavaScript Ajax
70.9 XML 应用程序
使用 XML、HTTP、DOM 以及 JavaScript 的 HTML 应用程序。
70.9.1 使用的 XML 文档
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<CATALOG>
<TRACK>
<TITLE>再见TITLE>
<ARTIST>邓紫棋ARTIST>
<ALBUM>新的心跳ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>邓紫棋工作室COMPANY>
<YEAR>2016YEAR>
TRACK>
<TRACK>
<TITLE>All I AskTITLE>
<ARTIST>AdeleARTIST>
<ALBUM>25ALBUM>
<COUNTRY>英国COUNTRY>
<COMPANY>XL RecordingsCOMPANY>
<YEAR>2015YEAR>
TRACK>
<TRACK>
<TITLE>之乎者也TITLE>
<ARTIST>罗大佑ARTIST>
<ALBUM>青春舞曲ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>滚石唱片COMPANY>
<YEAR>1982YEAR>
TRACK>
<TRACK>
<TITLE>Never Be AloneTITLE>
<ARTIST>Shawn MendesARTIST>
<ALBUM>HandwrittenALBUM>
<COUNTRY>加拿大COUNTRY>
<COMPANY>环球唱片COMPANY>
<YEAR>2015YEAR>
TRACK>
<TRACK>
<TITLE>慢慢TITLE>
<ARTIST>张学友ARTIST>
<ALBUM>忘记你我做不到ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>环球唱片COMPANY>
<YEAR>1996YEAR>
TRACK>
<TRACK>
<TITLE>ComplicatedTITLE>
<ARTIST>Avril LavigneARTIST>
<ALBUM>Let GoALBUM>
<COUNTRY>加拿大COUNTRY>
<COMPANY>索尼音乐COMPANY>
<YEAR>2002YEAR>
TRACK>
<TRACK>
<TITLE>三生三世TITLE>
<ARTIST>张杰ARTIST>
<ALBUM>三生三世十里桃花ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>仁溪音乐COMPANY>
<YEAR>2018YEAR>
TRACK>
<TRACK>
<TITLE>Five Hundred MilesTITLE>
<ARTIST>Justin TimberlakeARTIST>
<ALBUM>Inside Llewyn DavisALBUM>
<COUNTRY>美国COUNTRY>
<COMPANY>华纳唱片COMPANY>
<YEAR>2013YEAR>
TRACK>
<TRACK>
<TITLE>演员TITLE>
<ARTIST>薛之谦ARTIST>
<ALBUM>绅士ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>海蝶音乐COMPANY>
<YEAR>2016YEAR>
TRACK>
<TRACK>
<TITLE>NumbTITLE>
<ARTIST>Linkin ParkARTIST>
<ALBUM>MeteoraALBUM>
<COUNTRY>美国COUNTRY>
<COMPANY>华纳唱片COMPANY>
<YEAR>2003YEAR>
TRACK>
<TRACK>
<TITLE>给未来的自己TITLE>
<ARTIST>梁静茹ARTIST>
<ALBUM>崇拜ALBUM>
<COUNTRY>马来西亚COUNTRY>
<COMPANY>相信音乐COMPANY>
<YEAR>2007YEAR>
TRACK>
<TRACK>
<TITLE>The MonsterTITLE>
<ARTIST>RihannaARTIST>
<ALBUM>The Marshall Mathers LP2ALBUM>
<COUNTRY>巴巴多斯COUNTRY>
<COMPANY>环球唱片COMPANY>
<YEAR>2013YEAR>
TRACK>
<TRACK>
<TITLE>我终于失去了你TITLE>
<ARTIST>赵传ARTIST>
<ALBUM>我终于失去了你ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>滚石唱片COMPANY>
<YEAR>1989YEAR>
TRACK>
<TRACK>
<TITLE>Main TitlesTITLE>
<ARTIST>Ramin DjawadiARTIST>
<ALBUM>Game of ThronesALBUM>
<COUNTRY>德国COUNTRY>
<COMPANY>索尼音乐COMPANY>
<YEAR>2011YEAR>
TRACK>
<TRACK>
<TITLE>传奇TITLE>
<ARTIST>李健ARTIST>
<ALBUM>似水流年ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>北京完美坚持文化艺术工作室COMPANY>
<YEAR>2003YEAR>
TRACK>
<TRACK>
<TITLE>完美生活TITLE>
<ARTIST>许巍ARTIST>
<ALBUM>时光漫步ALBUM>
<COUNTRY>中国COUNTRY>
<COMPANY>金牌大风COMPANY>
<YEAR>2002YEAR>
TRACK>
CATALOG>
70.9.2 在 HTML 表格中显示 XML 数据
遍历每个 元素,然后在 HTML 表格中显示
<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="艺术家曲目";
var x = xmlDoc.getElementsByTagName("TRACK");
for (i = 0; i <x.length; i++) {
table += "" +
x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
"" +
x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
"";
}
document.getElementById("demo").innerHTML = table;
}
script>
body>
html>
70.9.3 在 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 =
"" +
"曲目:" +
x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "" +
"艺术家:" +
x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "" +
"专辑:" +
x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "" +
"国家:" +
x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "" +
"公司:" +
x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "" +
"年份:" +
x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "" +
"";
}
70.9.4 在曲目之间导航
添加 next() 和 previous() 函数:
function next() {
if (i < x.length-1) {
i++;
displayMUSIC(i);
}
}
function previous() {
if (i > 0) {
i--;
displayMUSIC(i);
}
}
70.9.5 在点击歌曲时显示专辑信息
当用户点击某一首歌曲时如何显示专辑信息:
function displayMUSIC(i) {
document.getElementById("showMUSIC").innerHTML =
"" +
"曲目:" +
x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "" +
"艺术家:" +
x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "" +
"专辑:" +
x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "" +
"国家:" +
x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "" +
"公司:" +
x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "" +
"年份:" +
x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "" +
"";
}
完整代码
DOCTYPE html>
<html>
<style>
table,th,td {
border : 1px solid black;
border-collapse: collapse;
}
th,td {
padding: 5px;
}
style>
<body>
<p>请点击某个曲目,可显示专辑信息。p>
<p id='showMUSIC'>p>
<table id="demo">table>
<script>
var x,xmlhttp,xmlDoc
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "/demo/music_list.xml", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
x = xmlDoc.getElementsByTagName("TRACK");
table="艺术家曲目";
for (i = 0; i <x.length; i++) {
table += "";
table += x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue;
table += "";
table += x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue;
table += "";
}
document.getElementById("demo").innerHTML = table;
function displayMUSIC(i) {
document.getElementById("showMUSIC").innerHTML =
"" +
"曲目:" +
x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue + "" +
"艺术家:" +
x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue + "" +
"专辑:" +
x[i].getElementsByTagName("ALBUM")[0].childNodes[0].nodeValue + "" +
"国家:" +
x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue + "" +
"公司:" +
x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue + "" +
"年份:" +
x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue + "" +
"";
}
script>
body>
html>
Original: https://blog.csdn.net/weixin_44226181/article/details/127816100
Author: Ding Jiaxiong
Title: JavaScript 70 JavaScript Ajax 70.9 XML 应用程序
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/652631/
转载文章受原作者版权保护。转载请注明原作者出处!