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插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 jQuery
基于jquery实现多选下拉列表
Aug 02 jQuery
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
jquery实现搜索框功能实例详解
Jul 23 jQuery
Jquery的Ajax技术使用方法
Jan 21 jQuery
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 jQuery
一文快速了解JQuery中的AJAX
May 31 jQuery
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
jQuery+ajax实现文件上传功能
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 header函数的常用http头设置
2015/06/25 PHP
ThinkPHP模型详解
2015/07/27 PHP
php简单判断文本编码的方法
2015/07/30 PHP
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
js判断游览器类型及版本号的代码
2014/05/11 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
JavaScript基础知识及常用方法总结
2016/01/10 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
AngularJs学习第八篇 过滤器filter创建
2016/06/08 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
基于python3生成标签云代码解析
2020/02/18 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
财务会计实习报告体会
2013/12/20 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
技能比赛获奖感言
2014/02/14 职场文书
街道社区活动报告
2015/02/05 职场文书
筑梦中国心得体会
2016/01/18 职场文书
导游词之江西赣州
2019/10/15 职场文书