从XML中提取数据返回节点删除错误

时间:2016-12-29 02:44:14

标签: javascript xml magic-mirror

我的API调用的XML输出包含以下内容:

 <channel channel="194882" name="Main Power Main Panel">
 <kWh>0.319</kWh> 
 </channel>

我正在尝试使用namekWh创建一个表格。所以,我只需要在我的表格中输出Main Power Main Panel 0.319

我收到错误Failed to execute "removeChild" on "Node": The node to be removed is not a child of this node.我认为问题在于我有一个name=元素,而不是<name>...</name>元素类型,但我不知道如何规避这一点。

我的DOM功能如下所示:

   getDom: function(){
        var wrapper = document.createElement("div");
        if(!this.loaded) {
                wrapper.innerHTML = "Loading...";
                return wrapper;
        }
        if(this.xml !== null){
         var table = document.createElement("table");
         table.classList.add("xsmall", "table");
         var channels = this.xml.getElementsByTagName("channel");
         for(var i = 0; i < channels.length; i++){
           var row = document.createElement("tr");
           for(var n = 0; n < channels[i].children.length; n++){
                if(channels[i].children[n].tagName === "name" || channels[i].children[n].tagName === "kWh"){

                var element = document.createElement("td");
                element.classList.add(channels[i].children[n].tagName);
                if (channels[i].children[n].textContent != 0){
            element.innerHTML = channels[i].children[n].textContent;
            row.appendChild(element);
            table.appendChild(row);
            }      
        else {
            table.removeChild(row); }
        }


           }
         }
         wrapper.appendChild(table);
        } else {
                console.log("Returned no Data");
                wrapper.innerHTML = "NO DATA";
        }
        return wrapper;
   },

这是针对那些熟悉的魔镜项目。感谢您寻求帮助!

0 个答案:

没有答案