javascript 创建并操作xml

原地址找不到了,直接附上代码。

//测试demo
$(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);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值