XML JavaScript.docx
- 文档编号:7629698
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:17
- 大小:21.51KB
XML JavaScript.docx
《XML JavaScript.docx》由会员分享,可在线阅读,更多相关《XML JavaScript.docx(17页珍藏版)》请在冰豆网上搜索。
XMLJavaScript
XML解析器
∙PreviousPage
∙NextPage
大多数浏览器都有读取和操作XML的内建XML解析器。
解析器把XML转换为JavaScript可访问的对象。
实例
W3School提供的实例是独立于浏览器和平台的。
这些例子可以在所有现代浏览器中运行。
加载并解析XML文件
加载并解析XML字符串
解析XML
所有现代浏览器都有读取和操作XML的内建XML解析器。
解析器把XML载入内存,然后把它转换为可通过JavaScript访问的XMLDOM对象。
您将在本教程的下一节中学习更多有关XMLDOM的知识。
微软的XML解析器与其他浏览器中的解析器之间,存在一些差异。
微软的解析器支持XML文件和XML字符串(文本)的加载,而其他浏览器使用单独的解析器。
不过,所有的解析器都包含遍历XML树、访问插入及删除节点(元素)及其属性的函数。
在本教程中,我们将为您展示如何创建可同时工作于InternetExplorer和其他浏览器中的脚本。
注释:
当我们谈及XML解析,我们常常会使用有关XML元素的术语:
节点。
通过微软的XML解析器来加载XML
微软的XML解析器内建于InternetExplorer5以及更高的版本中。
下面的JavaScript片段把一个XML文档载入解析器中:
varxmlDoc=newActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("note.xml");
例子解释:
1.上面代码的第一个行创建一个空的微软XML文档对象。
2.第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
3.第三行告知解析器加载名为"note.xml"的XML文档。
下面的JavaScript片段把字符串txt载入解析器:
varxmlDoc=newActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);
注释:
loadXML()方法用于加载字符串(文本),load()用于加载文件。
在Firefox及其他浏览器中的XML解析器
下面的JavaScript片段把XML文档("note.xml")载入解析器:
varxmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("note.xml");
例子解释:
1.上面代码的第一个行创建一个空的XML文档对象。
2.第二行关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行。
3.第三行告知解析器加载名为"note.xml"的XML文档。
下面的JavaScript片段把字符串txt载入解析器:
varparser=newDOMParser();
vardoc=parser.parseFromString(txt,"text/xml");
例子解释:
1.上面代码的第一个行创建一个空的XML文档对象。
2.第二行告知解析器载入名为txt的字符串。
注释:
InternetExplorer使用loadXML()方法来解析XML字符串,而其他浏览器使用DOMParser对象。
跨域访问
出于安全方面的原因,现代的浏览器不允许跨域的访问。
这意味着,网页以及它试图加载的XML文件,都必须位于相同的服务器上。
W3School的实例所打开的XML文件位于W3School的域上。
假如你打算在自己的网页上使用上面的例子,则必须把XML文件放到自己的服务器上。
否则,xmlDoc.load()将产生错误"Accessisdenied"。
XMLDOM
在本教程的下一章节,您将学习如何从XML文档对象(XMLDOM)来访问并取回数据。
XMLDOM
∙PreviousPage
∙NextPage
DOM(DocumentObjectModel,文档对象模型)定义访问和操作文档的一套标准方法。
XMLDOM
XMLDOM(XMLDocumentObjectModel)定义一套访问和操作XML文档的标准方法。
DOM把XML文档作为树结构来查看。
能够通过DOM树来访问所有元素。
可以修改或删除它们的内容,并创建新的元素。
元素,它们的文本,以及它们的属性,都被认为是节点。
在下面的例子中,我们使用DOM引用从
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
∙xmlDoc-由解析器创建的XML文档
∙getElementsByTagName("to")[0]-第一个
∙childNodes[0]-
∙nodeValue-节点的值(文本本身)
您可以在W3School的XMLDOM教程中学习更多相关知识。
HTMLDOM
HTMLDOM(HTMLDocumentObjectModel)定义一套访问和操作HTML文档的标准方法。
可以通过HTMLDOM访问所有HTML元素。
在下面的例子中,我们使用DOM引用来改变id="to"的HTML元素的文本:
document.getElementById("to").innerHTML=
∙document-HTML文档
∙getElementById("to")-其中的id="to"的HTML元素
∙innerHTML-HTML元素的内部文本
您可以在W3School的HTMLDOM教程中学习更多相关知识。
解析XML文件-跨浏览器实例
下列代码把一个XML文档("note.xml")载入XML解析器中:
functionparseXML()
{
try//InternetExplorer
{
xmlDoc=newActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try//Firefox,Mozilla,Opera,etc.
{
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e)
{
alert(e.message);
return;
}
}
xmlDoc.async=false;
xmlDoc.load("note.xml");
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;
}
W3SInternalNote
To:
From:
Message: