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实现前端分页功能
Mar 23 jQuery
jquery实现提示语淡入效果
May 05 jQuery
jQuery之动画ajax事件(实例讲解)
Jul 18 jQuery
jQuery实现键盘回车搜索功能
Jul 25 jQuery
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
jQuery结合jQuery.cookie.js插件实现换肤功能示例
Oct 14 jQuery
jQuery响应滚动条事件功能示例
Oct 14 jQuery
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 jQuery
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
jQuery轮播图功能制作方法详解
Dec 03 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
Terran热键控制
2020/03/14 星际争霸
PHP新手上路(七)
2006/10/09 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
php查询ip所在地的方法
2014/12/05 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
javascript实现上传图片前的预览(TX的面试题)
2007/08/20 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
Javascript WebSocket使用实例介绍(简明入门教程)
2014/04/16 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
Python生成器(Generator)详解
2015/04/13 Python
Python语言描述随机梯度下降法
2018/01/04 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python构建图像分类识别器的方法
2019/01/12 Python
python3字符串操作总结
2019/07/24 Python
python随机数分布random均匀分布实例
2019/11/27 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
关于毕业的广播稿
2014/01/10 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
讲解Python实例练习逆序输出字符串
2022/05/06 Python