操控 XML 文档

前端之家收集整理的这篇文章主要介绍了操控 XML 文档前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

曾记得,最早啃 XML 是 浏览器里面的数据岛,那时还不知道 IE Only,其实无甚价值。

后来工作中也陆陆续续接触 XML 其他方面的应用,但还是比较少。因为现在越来越多人倾向于更简洁的 JSON 格式,XML 自然没落了。当然,采用 XML 作为配置文件还是蛮不错的。

后来的 Java 社区,也推荐大家使用 注解,来代替 XML 文件

可见,XML 却真是不受待见了哦。

不过,俺觉得,XSLT + XML 还是蛮不错的,况且也是标准。标准的好处就是你会的东西,人家可可能会,越多人会越好——不像现在模板语言各自为营。我第一份工作就是搞 XSLT + XML 的,靠,那时没人跟我说这是干嘛用的,傻乎乎许久之后才知道那是模板!

书归正传,写此文的目的不是叙旧,而是记下关于 XML 使用的一些方法,我把上次商城项目的经验“备份”出来,其中就有解析 XML 节点,在浏览器中 DOM 的解析方式。

  1. $.get('public/service/proxy.jsp',function(xml,requestInstance,xhr){
  2. if(xml.indexOf('没有对应的查单内容') != -1){
  3. resultEl.innerHTML = '<br /><br /><br /><center style="color:red;">没有对应的查单内容</center>';
  4. return;
  5. }
  6. var XML = xhr.responseXML;
  7. var node,nodes = XML.firstChild.childNodes[3].childNodes[1].childNodes;
  8.  
  9. var wlObj = {
  10. 运单号 : postid.value,承运公司 : comapnyName.value,points : []
  11. };
  12.  
  13. for(var i = 0,j = nodes.length; i < j; i++){
  14. node = nodes[i];
  15. if(node.nodeType == 1){
  16. for(var s_XH,/* s 节点下的序号 */ q = 0,p = node.childNodes.length; q < p; q++){
  17. s_XH = node.childNodes[q],s_zd = s_XH.nextElementSibling;/* s 节点下的字段 */
  18. if(s_XH.tagName == '序号' && s_zd.textContent != '运输过程'){
  19. wlObj[s_zd.textContent] = s_zd.nextElementSibling.textContent;
  20. }else if(s_XH.tagName == '序号' && s_zd.textContent == '运输过程'){
  21. var date = s_zd.nextElementSibling,content = date ? date.nextElementSibling : null;
  22. if(!content){ // 有时会没有时间
  23. date = null;
  24. content = s_zd.nextElementSibling;
  25. }
  26.  
  27. wlObj.points.push({
  28. date : date && date.textContent ?
  29. utils.date_format.call(new Date(date.textContent),"yyyy-MM-dd hh:mm")
  30. : '',content : content ? content.textContent : ''
  31. });
  32. }
  33. }
  34. }
  35. }
  36. if(resultPointTpl){
  37. var points = Object.create(tpl.renderList);
  38. points.tpl = resultPointTpl;
  39. points.data = wlObj.points;
  40. resultEl.innerHTML = tpl.replace(resultTpl,wlObj) + points.apply();
  41. }else{
  42. resultEl.innerHTML = tpl.replace(resultTpl,wlObj);
  43. }
  44. // debugger;
  45.  
  46. showNetpoint(comapnyId.value);
  47. },{
  48. webID : comapnyId.value,billCode : postid.value
  49. });
比较繁琐。回想起 JSON 的话,完全就是在 JS 中对象 . 号就是读取的了。话说 XML 也有,那就是 EAX 好像,仅 FF 支持

猜你在找的XML相关文章