XML笔记-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

猜你在找的XML相关文章