XML的学习

文章目录

  • 一、XMLHttpRequest 对象
  • 二、XML 解析器
  • 三、XML DOM
  • 总结


一、XMLHttpRequest 对象

XMLHttpRequest 对象用于在后台与服务器交换数据。

在不重新加载页面的情况下更新网页
在页面已加载后从服务器请求数据
在页面已加载后从服务器接收数据
在后台向服务器发送数据

XML的学习_第1张图片

  • 创建一个 XMLHttpRequest 对象
    XML的学习_第2张图片

二、XML 解析器

所有现代浏览器都有内建的 XML 解析器。
XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。

  • 解析 XML 文档

下面的代码片段把 XML 文档解析到 XML DOM 对象中:

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","books.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML; 
  • 解析 XML 字符串
    下面的代码片段把 XML 字符串解析到 XML DOM 对象中:
txt="<bookstore><book>";
txt=txt+"<title>Everyday Italiantitle>";
txt=txt+"<author>Giada De Laurentiisauthor>";
txt=txt+"<year>2005year>";
txt=txt+"book>bookstore>";

if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(txt);
} 

注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。

  • 跨域访问
    出于安全方面的原因,现代的浏览器不允许跨域的访问。

这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上。

三、XML DOM

DOM(Document Object Model 文档对象模型)定义了访问和操作文档的标准方法。
XML DOM(XML Document Object Model)定义了访问和操作 XML 文档的标准方法。
XML DOM 把 XML 文档作为树结构来查看。
所有元素可以通过 DOM 树来访问。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。

  • HTML DOM
    HTML DOM 定义了访问和操作 HTML 文档的标准方法。
    所有 HTML 元素可以通过 HTML DOM 来访问。
  • 加载一个 XML 文件 - 跨浏览器实例
<html>
<body>
<h1>W3Schools Internal Noteh1>
<div>
<b>To:b> <span id="to">span><br />
<b>From:b> <span id="from">span><br />
<b>Message:b> <span id="message">span>
div>

<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
script>

body>
html>
  • 重要注释!
    如需从上面的 XML 文件(“note.xml”)的 元素中提取文本 “Tove”,语法是:
getElementsByTagName("to")[0].childNodes[0].nodeValue

请注意,即使 XML 文件只包含一个 元素,您仍然必须指定数组索引 [0]。这是因为 getElementsByTagName() 方法返回一个数组。

来自“https://www.runoob.com/xml/xml-http.html”

总结

大鹏一日同风起,扶摇直上九万里。

你可能感兴趣的:(XML学习,javascript,服务器,开发语言)