一个构建XML对象的js库

初学javascript,学习中用到在IE中建立XML对象,于是写了一个简单的“库”。因为水平所限,肯定会有不恰当的地方,欢迎指正。

如果大家有知道现存的更好的东西,非常希望大家能将它推荐给我。

 

代码:

function XmlObject() {
    var oXml = new ActiveXObject("Microsoft.XMLDOM");
    this.getXmlObj = function() {
        return oXml;
    }
    this.InitXmlObj = function() {
        oXml = new ActiveXObject("Microsoft.XMLDOM"); //对象
    }
    this.isTop = function(oNode) {
        if (oNode === oXml) return true;
        return false;
    }
    this.AddTextNode = function(oParent, sKey, sValue) {
        if (this.isTop(oParent) == true) {
            //为顶级对象添加的节点不能超过一个
            if (oXml.childNodes.length > 0) {
                //已经存在根节点,不继续添加
                return null;
            }
        }
        var oNewNode = oXml.createElement(sKey);
        var oTextNode = oXml.createTextNode(sValue);
        oParent.appendChild(oNewNode);
        oNewNode.appendChild(oTextNode);
        return oNewNode;
    }
    this.AddAttrNode = function(oParentNode, sNodeName, sAttr, sValue) {
        if (this.isTop(oParent) == true) {
            //为顶级对象添加的节点不能超过一个
            if (oXml.childNodes.length > 0) {
                //已经存在根节点,不继续添加
                return null;
            }
        }
        var oNewNode = oXml.createElement(sNodeName);
        oParentNode.appendChild(oNewNode);
        oNewNode.setAttribute(sAttr, sValue);
        return oNewNode;
    }
    this.AddAttrTextNode = function(oParentNode, sNodeName, sNodeText, sAttrName, sAttrValue) {
        if (this.isTop(oParentNode) == true) {
            //为顶级对象添加的节点不能超过一个
            if (oXml.childNodes.length > 0) {
                //已经存在根节点,不继续添加
                return null;
            }
        }
        var oNewNode = oXml.createElement(sNodeName);
        var oTextNode = oXml.createTextNode(sNodeText);
        oParentNode.appendChild(oNewNode);
        oNewNode.setAttribute(sAttrName, sAttrValue);
        oNewNode.appendChild(oTextNode);
        return oNewNode;
    }
    this.getXmlStr = function() {
        return oXml.xml;
    }
}

演示代码:

function onXml() {
    var oXmlOp = new XmlObject();
    var oTop = oXmlOp;
    var oTop = oXmlOp.AddAttrTextNode(oXmlOp.getXmlObj(), "UserInfo", "", "class", "dianxin1005");
    oXmlOp.AddAttrTextNode(oTop, "Subject", "Chinese", "Score", "98");
    oXmlOp.AddAttrTextNode(oTop, "Subject", "Math", "Score", "77");
    oXmlOp.AddAttrTextNode(oTop, "Subject", "English", "Score", "99");
    alert(oXmlOp.getXmlStr());
}

  

生成的XML是:

<UserInfo class="dianxin1005">
    <Subject Score="98">
        Chinese
    </Subject>
    <Subject Score="77">
        Math
    </Subject>
    <Subject Score="99">
        English
    </Subject>
</UserInfo>

  

 

转载于:https://www.cnblogs.com/sunsoftresearch/p/3533452.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值