加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML笔记-xml解析与加载

发布时间:2020-12-16 02:15:03 所属栏目:百科 来源:网络整理
导读:解析器把 XML 读入内存,并把它转换为可被 JavaScript 访问的 XML DOM 对象。 微软的 XML 解析器与其他浏览器中的解析器是有差异的。微软的解析器支持对 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都含有遍历

解析器把 XML 读入内存,并把它转换为可被 JavaScript 访问的 XML DOM 对象。

微软的 XML 解析器与其他浏览器中的解析器是有差异的。微软的解析器支持对 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都含有遍历 XML 树、访问、插入及删除节点的函数。

一、微软XML 解析器

1、载入xml文件:解析器.load(xml文件)

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");	//创建空的XML DOM对象
xmlDoc.async="false";				//采用同步加载,加载时无法进行其它操作
xmlDoc.load("books.xml");

2、解析字符串为XML DOM 对象:解析器.loadXML(表示xml对象的字符串)

xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt); 说明:

ActiveXObject类:


二、其它浏览器的XML 解析器

1、载入xml文件:

xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");

2、解析字符串为XML DOM 对象:

parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");

说明:implementation是管理当前document的对象,dom level1、2、3中分别增加了不同方法(共三个),具体见:

http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-102161490

三、xml加载说明

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

这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上。(即xml的加载只能是服务器端页面调用服务器上某个xml文件)

必须把 XML 文件放到自己的服务器上。否则,xmlDoc.load() 将产生错误 "Access is denied"。


四、示例

<html>
<body>
<script type="text/javascript">
text="<bookstore>"
text=text+"<book>";
text=text+"<title>Harry Potter</title>";
text=text+"<author>J K. Rowling</author>";
text=text+"<year>2005</year>";
text=text+"</book>";
text=text+"</bookstore>";

try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  }
catch(e)
  {
  try //Firefox,Mozilla,Opera,etc.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(text,"text/xml");
    }
  catch(e) {alert(e.message)}
  }
try 
  {
  document.write("xmlDoc 已加载,可以使用。");
  }
catch(e) {alert(e.message)}
</script>
</body>
</html>


以上全来自W3School 网站:http://www.w3school.com.cn/xmldom/dom_parser.asp

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读