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实现jQuery-form.js实现异步上传文件
Apr 28 jQuery
关于jQuery库冲突的完美解决办法
May 20 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
jQuery实现模拟搜索引擎的智能提示功能简单示例
Jan 27 jQuery
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
浅谈JS和jQuery的区别
Mar 27 jQuery
jQuery实现轮播图源码
Oct 23 jQuery
基于jQuery实现挂号平台首页源码
Jan 06 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实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
php实现对象克隆的方法
2015/06/20 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
javascript innerText和innerHtml应用
2010/01/28 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
ng-alain表单使用方式详解
2018/07/10 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
django admin添加数据自动记录user到表中的实现方法
2018/01/05 Python
Python发展史及网络爬虫
2019/06/19 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python urllib和urllib3知识点总结
2021/02/08 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
欢迎横幅标语
2014/06/17 职场文书
新学期开学标语
2014/06/30 职场文书
2015高考寄语集锦
2015/02/27 职场文书
三八节活动主持词
2015/07/04 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android
python_tkinter弹出对话框创建
2022/03/20 Python