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' の値を取得できません: オブジェクトが null または未定義です。

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 に答える