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+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
jQuery复合事件用法示例
Jun 10 jQuery
jQuery Autocomplete简介_动力节点Java学院整理
Jul 17 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
layui中使用jquery控制radio选中事件的示例代码
Aug 15 jQuery
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
jquery.pagination.js分页使用教程
Oct 23 jQuery
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 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
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP执行速率优化技巧小结
2008/03/15 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php操作MongoDB类实例
2015/06/17 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
javascript Keycode对照表
2009/10/24 Javascript
js常用代码段收集
2011/10/28 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
详解10分钟学会vue滚动行为
2017/09/21 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
django 创建过滤器的实例详解
2017/08/14 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
Django中create和save方法的不同
2019/08/13 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
10张动图学会python循环与递归问题
2021/02/06 Python
Jdbc数据访问技术面试题
2012/03/30 面试题
《蜗牛》教学反思
2014/02/18 职场文书
冬季安全检查方案
2014/05/23 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
2015年售票员工作总结
2015/04/29 职场文书