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动态追加页面数据以及事件委托详解
May 06 jQuery
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
Jun 09 jQuery
jQuery自定义多选下拉框效果
Jun 19 jQuery
jQuery实现全选、反选和不选功能
Aug 16 jQuery
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
jquery将json转为数据字典的实例代码
Oct 11 jQuery
jQuery--遍历操作实例小结【后代、同胞及过滤】
May 22 jQuery
jQuery实现视频展示效果
May 30 jQuery
jQuery实现滑动开关效果
Aug 02 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内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
python3中函数参数的四种简单用法
2018/07/09 Python
python编写猜数字小游戏
2019/10/06 Python
Python字典底层实现原理详解
2019/12/18 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
2020/08/26 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
英国医生在线预约:Top Doctors
2019/10/30 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
幼儿园长自我鉴定
2013/10/17 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server