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 24 jQuery
使用jQuery卸载全部事件的思路详解
Apr 03 jQuery
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 jQuery
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
jQuery开发仿QQ版音乐播放器
Jul 10 jQuery
JQuery基于FormData异步提交数据文件
Sep 01 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中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
Javascript 布尔型分析
2008/12/22 Javascript
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
2009/08/04 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
kali中python版本的切换方法
2019/07/11 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
python实现在一个画布上画多个子图
2020/01/19 Python
Python阶乘求和的代码详解
2020/02/14 Python
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
英国网上购买门:Direct Doors
2018/06/07 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
职工年度考核评语
2014/12/31 职场文书
求职意向书范本
2015/05/11 职场文书
《春酒》教学反思
2016/02/22 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL