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);

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") 'JAVASCRIPT中的创建对象 set objXml=CreateObject("Microsoft.XMLDOM") '创建解析器对象 objXml.async="false" objXml.load("test.xml") '装载xml文件 objXml.load(Server.MapPath("test.xml")) '根据绝对路径装载xml文件 Set objRootsite = xmlDoc.getElementsByTagName("NewList") '查找某一节点"NewList" objNextRootsiteName = xmlDoc.getElementsByTagName("NewList").item(0).nodeName Set objRootsite = objXml.documentElement.selectSingleNode("NewList") '查找某一节点"NewList" document.write(objRootsite.nodeName) '当前节点名称 objNextRootsite = objRootsite.childNodes.item(1) '查找"NewList"的第一子节点 objNextRootsiteText = objNextRootsite.childNodes.item(1).text '查找"NewList"的第一子节点的节点内容 xmlChildNode = objXml.documentElement.childNodes '获取当前节点 document.Write (xmlChildNode.nodename) '当前节点名称 document.write (xmlChildNode.text) '当前节点文本内容 frm.label.innerText = xmlChildNode.item(1).text '将Xml中的文本内容转换为Html中的内容 xmlChildNode.GetAttributeNode("name").Nodevalue '获取属性名为name的属性值 xmlChildNode.length 'xmlChildNode节点的子节点数量 '取出一个节点的属性集合 set objnodes=objXml.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes for each element in objnodes response.write element.nodename '属性名 response.write element.nodevalue '属性值 next xmlDoc.getElementsByTagName("from").item(0).text xmlDoc.removeChild objRootsite '删除某个节点 objXml.parseError '错误接受容器 objXml.parseError.errorCode '返回长整型错误代码 objXml.parseError.reason '返回字符串型错误原因 objXml.parseError.line '返回长整型错误行号 objXml.parseError.linePos '返回长整型错误行字符位置 objXml.parseError.srcText '返回错误所在行的源代码 objXml.parseError.url '返回url装载文档指针---最近一份含有解析错误的XML文档的URL地址 objXml.parseError.filePos '返回长整型错误文件位置---在文档中的绝对字符位置
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值