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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
Jquery-data的三种用法
Apr 18 jQuery
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
jQuery实现获取form表单内容及绑定数据到form表单操作分析
Jul 03 jQuery
jQuery实现输入框的放大和缩小功能示例
Jul 21 jQuery
JQuery中queue方法用法示例
Jan 31 jQuery
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
jQuery实现B2B网站后台管理系统侧导航
Jul 08 jQuery
jquery+ajax实现异步上传文件显示进度条
Aug 17 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
zend framework文件上传功能实例代码
2013/12/25 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
php数组去重复数据示例
2014/02/25 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
javascript显示选择目录对话框的代码
2008/11/10 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
python多重继承新算法C3介绍
2014/09/28 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
Python实现简单http服务器
2018/04/12 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
浅析Python数据处理
2018/05/02 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
wxPython色环电阻计算器
2019/11/18 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
linux面试题参考答案(3)
2012/09/13 面试题
大专应届生个人简历的自我评价
2013/10/15 职场文书
机械制造与自动化应届生求职信
2013/11/16 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
求职自我评价范文
2015/03/09 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers