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请求struts action实现异步刷新
Apr 19 jQuery
jquery submit()不能提交表单的解决方法
Apr 24 jQuery
最常用的jQuery表单验证(简单)
May 23 jQuery
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
jQuery基于cookie实现换肤功能实例
Oct 14 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
layui中使用jquery控制radio选中事件的示例代码
Aug 15 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jQuery操作元素追加内容示例
Jan 10 jQuery
Jquery+javascript实现支付网页数字键盘
Dec 21 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
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
javascript cookies操作集合
2010/04/12 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
Bootstrap插件全集
2016/07/18 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
2018/11/20 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
[03:01]2014DOTA2国际邀请赛 DC:我是核弹粉,为Burning和国土祝福
2014/07/13 DOTA
python中import与from方法总结(推荐)
2019/03/21 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
python中安装django模块的方法
2020/03/12 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
Python: glob匹配文件的操作
2020/12/11 Python
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
名人演讲稿范文
2013/12/28 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
工作保证书
2015/01/17 职场文书
筑梦中国心得体会
2016/01/18 职场文书
资产移交协议书
2016/03/24 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL