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和ajax代替iframe的方法(详解)
Apr 12 jQuery
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
May 13 jQuery
详解jquery选择器的原理
Aug 01 jQuery
jQuery Datatable 多个查询条件自定义提交事件(推荐)
Aug 24 jQuery
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 jQuery
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
详解如何使用webpack打包多页jquery项目
Feb 01 jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
jQuery加PHP实现图片上传并提交的示例代码
Jul 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 static局部静态变量和全局静态变量总结
2014/03/02 PHP
跟我学Laravel之视图 &amp; Response
2014/10/15 PHP
php中opendir函数用法实例
2014/11/15 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
python解析模块(ConfigParser)使用方法
2013/12/10 Python
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
详解python内置模块urllib
2020/09/09 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
商务日语专业毕业生求职信
2013/10/26 职场文书
计算机专业学生求职信分享
2013/12/15 职场文书
三年级语文教学反思
2014/02/01 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP