JavaScript 70 JavaScript Ajax 70.9 XML 应用程序

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);
  }
}

JavaScript 70 JavaScript Ajax 70.9 XML 应用程序
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>

JavaScript 70 JavaScript Ajax 70.9 XML 应用程序

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球