XML文件解析&操作&与JSON比较

外部xml数据引用

首先创建一个解析对象用来解析xml文件;

跨浏览器的解析xml文件的函数:

 

[javascript][/javascript] view plaincopyprint?

  1. fountion parseXML(fileXmlName){
  2.     var xmlDoc;
  3.     try{    //Internet Explorer  创建一个空的xml文档
  4.         xmlDoc = new ActiveXobject(“Microsoft.XMLDOM”);
  5.     }
  6.     catch(e){
  7.         try{      //Firefox, Nozilla,Oera,  创建一个空的xml文档
  8.             xmlDoc = document.imlementation.createDocument(“”,””,null);
  9.         }
  10.         catch(e){}
  11.     }
  12.     //关闭异步加载
  13.     xmlDoc.async = flase;
  14.     //加载xml文件
  15.     xmlDoc.load(fileXmlName);
  16.     return xmlDoc;
  17. }

 

 

解析xml文件 :var docXml = parseXml(“filename.xml”);

 

操作和dom对象一样,比如获取某个节点的引用:var nodeElements = docXml.getElementsByTagName(“TagName”) ;

在xml中的标签名是自己定义的,显得更加灵活;

 

在我的一篇博客中也写了JSON数据格式,在这里比较一下各自的优缺点以及在什么场合适合用什么个数的数据:

 

XML:

优点:
XML 是一种通用的数据格式。
不必把数据强加到已定义好的格式中,而是要为数据自定义合适的标记。
利用 DOM 可以完全掌控文档。
缺点:
如果文档来自于服务器,就必须得保证文档含有正确的首部信息(如果要传文件或者Post内容给服务器,

必须先调用setRequestHeader方法,修改MIME类别。http_request.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”)

如果是以GET方式发送则不需要)。若文档类型不正确,那么 responseXML 的值将是空的。

当浏览器接收到长的 XML 文件后, DOM 解析可能会很复杂

 

json

优点:
作为一种数据传输格式,JSON 与 XML 很相似,但是它更加灵巧。
JSON 不需要从服务器端发送含有特定内容类型的首部信息。
缺点:
代码不易读
eval 函数存在风险

应用场合:

如果数据需要重用, JSON 文件是个不错的选择, 其在性能和文件大小方面有优势
当远程应用程序未知时, XML 文档是首选, 因为 XML 是 web 服务领域的 “世界语”

 

标签