我开始学习xml,我遇到了一个问题。我需要在xml文件中添加元素,所以我使用这个方法:
function newNode()
{
var xmlDoc = loadXMLDoc("Nodes.xml");
var nodes = xmlDoc.documentElement;
var newNode = xmlDoc.createElement('node');
var newName = xmlDoc.createElement('name');
var newText = xmlDoc.createTextNode('Start Node');
newName.appendChild(newText);
newNode.appendChild(newName);
xmlDoc.documentElement.appendChild(newNode);
alert(xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue);
return xmlDoc;
}
它工作正常,警报显示“启动节点”,但是当我使用与以下相同的警报命令时:
function z()
{
var xmlDoc = loadXMLDoc("Nodes.xml");
alert(xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue);
}
我收到此错误:无法获取属性'childNodes'的值:object为null或undefined。
答案 0 :(得分:0)
在运行z函数之前,您能否发送一个XML文件示例?
根据我在这里看到的,它只是意味着文档中没有“name”节点,这意味着getElementsByTagName(“name”)= [],这解释了为什么getElementsByTagName(“name”)[0]未定义
答案 1 :(得分:0)
我讨厌成为那个人,但是可以使用jQuery,dojo,mootools或者我最近最喜欢的zepto(如果你不需要支持旧的IE)来轻松修改和遍历XML。