0

我一直在努力将 XML 元素添加到 XML 结构中,但没有成功,这是我的代码。

var parseXml;
        if (window.DOMParser) {
            parseXml = function(xmlStr) {
            return ( new window.DOMParser() ).parseFromString(xmlStr, "text/xml");
            };
        }
        else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) {
            parseXml = function(xmlStr) {
                var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async = "false";
                xmlDoc.loadXML(xmlStr);
                return xmlDoc;
            };
        }
        else {
            parseXml = function() { return null; }
        }
        var xmlTree = parseXml("<root></root>");

        function add_children(child_name,parent_name)
        {
            str = '<'+child_name+'></'+child_name+'>';
            //strXML = parseXml(str);
            $(xmlTree).find(parent_name).append(str);
            var xmlString = (new XMLSerializer()).serializeToString(xmlTree);
            console.log(xmlString);
        }
        add_children("apple","root");
        add_children("orange","root");
        add_children("lychee","root");

但控制台显示<root/>所有三次

4

1 回答 1

0

问题是您在 Html 中创建节点document,而不是在 XML 中创建节点,因此您无法附加它。更改此行:

str = '<'+child_name+'></'+child_name+'>';

对于这个:

str = xmlTree.createElement(child_name);

请参阅http://jsfiddle.net/W9Wpb/中的工作代码

于 2012-08-23T06:41:41.603 回答