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 禁止鼠标右键并监听右键事件
Apr 27 jQuery
jQuery实现的简单在线计算器功能
May 11 jQuery
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
jQuery实现广告条滚动效果
Aug 22 jQuery
JQuery特殊效果和链式调用操作示例
May 13 jQuery
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 jQuery
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
jQuery实现增删改查
Dec 22 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 数组使用详解 推荐
2011/06/02 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php class类的用法详细总结
2013/10/17 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
Node.js之删除文件夹(含递归删除)代码实例
2019/09/09 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
vue中v-model对select的绑定操作
2020/08/31 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
OpenCV 边缘检测
2019/07/10 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
长辈证婚人证婚词
2014/01/09 职场文书
学习经验交流会主持词
2014/04/01 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
先进班集体申报材料
2014/12/26 职场文书
2015年团支书工作总结
2015/04/03 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js
MySql数据库触发器使用教程
2022/06/01 MySQL