欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-24 21:41:52
本文实例讲述了jquery创建及操作xml格式数据。分享给大家供大家参考,具体如下:

本文实例讲述了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格式数据示例

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

在线xml/json互相转换工具:

在线格式化xml/在线压缩xml

xml在线压缩/格式化工具:

xml代码在线格式化美化工具:

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

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