首页 > 编程 > JavaScript > 正文

jQuery创建及操作xml格式数据示例

2019-11-19 13:46:41
字体:
来源:转载
供稿:网友

本文实例讲述了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>

运行结果:

PS:这里再为大家提供几款关于xml操作相关在线工具供大家参考使用:

在线XML/JSON互相转换工具:
http://tools.VeVB.COm/code/xmljson

在线格式化XML/在线压缩XML
http://tools.VeVB.COm/code/xmlformat

XML在线压缩/格式化工具:
http://tools.VeVB.COm/code/xml_format_compress

xml代码在线格式化美化工具:
http://tools.VeVB.COm/code/xmlcodeformat

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery操作xml技巧总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery常见经典特效汇总》及《jquery选择器用法总结

希望本文所述对大家jQuery程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表