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实现的动态文字变化输出效果示例【附演示与demo源码下载】
Mar 24 jQuery
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
jQuery Validate 无法验证 chosen-select元素的解决方法
May 17 jQuery
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
jquery animate动画持续运动的实例
Nov 29 jQuery
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
jQuery中$原理实例分析
Aug 13 jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
jquery实现穿梭框功能
Jan 19 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
UCenter 批量添加用户的php代码
2012/07/17 PHP
php动态生成缩略图并输出显示的方法
2015/04/20 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
2010/06/02 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
Python解析nginx日志文件
2015/05/11 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
python表格存取的方法
2018/03/07 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Python自动化操作实现图例绘制
2020/07/09 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
某科技软件测试面试题
2013/05/19 面试题
医院护士求职自荐信格式
2013/09/21 职场文书
门卫班长岗位职责
2013/12/15 职场文书
汉语言文学职业规划
2014/02/14 职场文书
小石潭记导游词
2015/02/03 职场文书
会计求职信怎么写
2015/03/20 职场文书
求职自我推荐信
2015/03/24 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
python如何正确使用yield
2021/05/21 Python
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
css弧边选项卡的项目实践
2023/05/07 HTML / CSS