jQuery创建及操作xml格式数据示例


Posted in jQuery onMay 26, 2018

本文实例讲述了jQuery创建及操作xml格式数据。分享给大家供大家参考,具体如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQuery创建及操作xml</title>
</head>
<body>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
$(function(){
  var xmlDom=$($.parseXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><root><person></person></root>"));
  xmlDom.find("root").appendXml("<content/>").text("测试");
  xmlDom.find("content").beforeXml("<test/>");
  alert(xmlDom.xml());
});
(function($) {
    function mnpXml(opCode, xmlStr) {
      return this.each(function() {
        if (typeof xmlStr != "string") return;
        if (!jQuery.isXMLDoc(this)) return;
        var node = $.parseXml(xmlStr).firstChild.cloneNode(true);
        switch (opCode) {
          case "append":
            this.appendChild(node);
            break;
          case "prepend":
            if (this.childNodes.length > 0)
              this.insertBefore(node, this.firstChild);
            else
              this.appendChild(node);
            break;
          case "after":
            if (this.nextSibling)
              this.parentNode.insertBefore(node, this.nextSibling);
            else
              this.parentNode.appendChild(node);
            break;
          case "before":
            this.parentNode.insertBefore(node, this);
            break;
        }
      });
    }
    $.fn.extend({
      appendXml: function(s) {
        return mnpXml.call(this, "append", s);
      },
      prependXml: function(s) {
        return mnpXml.call(this, "prepend", s);
      },
      afterXml: function(s) {
        return mnpXml.call(this, "after", s);
      },
      beforeXml: function(s) {
        return mnpXml.call(this, "before", s);
      },
      xml: function() {
        var elem = this[0];
        return elem.xml || (new XMLSerializer()).serializeToString(elem) ;
      },
      innerXml: function() {
        var s = this.xml();
        var i = s.indexOf(">"), j = s.lastIndexOf("<");
        if (j > i)
          return s.substring(i + 1, j);
        else
          return "";
      }
    });
    $.extend(jQuery, {
      parseXml: function(xmlStr) {
        if (window.ActiveXObject) {
          var xd = new ActiveXObject("Microsoft.XMLDOM");
          xd.async = false;
          xd.loadXML(xmlStr);
          return xd;
        }
        else if (typeof DOMParser != "undefined") {
          var xd = new DOMParser().parseFromString(xmlStr, "text/xml");
          return xd;
        }
        else return null;
      },
      toXml: function(obj, nodeName, useAttr) {
        var x = $($.parseXml("<" + nodeName + " />"));
        var n = x.find(":first");
        for (var p in obj) {
          if (useAttr)
            n.attr(p, obj[p]);
          else
            n.appendXml("<" + p + " />").find(p).text(obj[p]);
        }
        return x[0];
      }
    });
  })(jQuery);
</script>
</body>
</html>

运行结果:

jQuery创建及操作xml格式数据示例

jQuery 相关文章推荐
jQuery树插件zTree使用方法详解
May 02 jQuery
jQuery Validate 校验多个相同name的方法
May 18 jQuery
jQuery正则验证注册页面经典实例
Jun 10 jQuery
jquery easyui如何实现格式化列
Jul 30 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
jQuery选择器中的特殊符号处理方法
Sep 08 jQuery
jquery实现楼层滚动效果
Jan 01 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 jQuery
jQuery操作cookie的示例代码
Jun 05 jQuery
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 #jQuery
jquery.onoff实现简单的开关按钮功能(推荐)
May 24 #jQuery
jquery引入外部CDN 加载失败则引入本地jq库
May 23 #jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 #jQuery
20个最常见的jQuery面试问题及答案
May 23 #jQuery
jQuery发请求传输中文参数乱码问题的解决方案
May 22 #jQuery
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 #jQuery
You might like
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
初学Javascript的一些总结
2008/11/03 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
深入Python函数编程的一些特性
2015/04/13 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
python中的字符串内部换行方法
2018/07/19 Python
Python函数参数操作详解
2018/08/03 Python
Python对象转换为json的方法步骤
2019/04/25 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
500行python代码实现飞机大战
2020/04/24 Python
降低python版本的操作方法
2020/09/11 Python
Flask处理Web表单的实现方法
2021/01/31 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
玲玲的画教学反思
2014/02/04 职场文书
行政副总岗位职责
2014/02/23 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书