【问题标题】:modify xml using javascript使用javascript修改xml
【发布时间】:2012-06-01 23:50:07
【问题描述】:

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

【问题讨论】:

    标签: javascript xml


    【解决方案1】:

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

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

    【讨论】:

    • xml 文件仅以文档元素开头,我将开始使用 newNode() 添加节点。 getElementsByTagName("name")[0] 在 z() 中调用时为 null,但在 newNode() 中工作正常。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-26
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2019-11-28
      相关资源
      最近更新 更多