0

我开始学习 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”的值:对象为空或未定义。

4

2 回答 2

0

您能否在运行 z 函数之前发送一个 XML 文件的示例?

根据我在这里看到的,它只是意味着文档中没有“name”节点,这意味着 getElementsByTagName("name") = [],解释了为什么 getElementsByTagName("name")[0] 是未定义的。

于 2012-06-01T14:23:12.087 回答
0

我讨厌成为那种人,但可以使用 jQuery、dojo、mootools 或我最近最喜欢的 zepto(如果您不需要支持旧的 IE)等库轻松修改和遍历 XML。

于 2012-06-01T15:50:07.897 回答