XML DOM の上級 XML DOM - 上級 このチュートリアルの前半で、XML DOM を紹介し、XML DOM の getElementsByTagName() メソッドを使用して XML ドキュメントからデータを取得しました。この章では、他の重要な XML DOM メソッドをいくつか組み合わせます。 XML DOM について詳しくは、XML DOM チュートリアルをご覧ください。次の例で使用されている XML ファイル内の要素の値を取得します:books.xml。次の例では、最初の <title> 要素のテキスト値を取得します。
txt=xmlDoc.getElementsByTagName("タイトル")[0].childNodes[0].nodeValue;
試してみましょう »
次の例では、最初の <title> 要素の「lang」属性のテキスト値を取得します。
txt=xmlDoc.getElementsByTagName("タイトル")[0].getAttribute("lang");
試してみましょう »
次の例では、最初の <title> 要素のテキスト値を変更します。
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="簡単クッキング";
試してみましょう »
XML DOM の setAttribute() メソッドを使用して、既存の属性の値を変更したり、新しい属性を作成したりできます。
次の例では、新しい属性 (edition="first") を作成し、それを各 <book> 要素に追加します。
x=xmlDoc.getElementsByTagName("book");for(i=0;i<x.length;i++){x[i].setAttribute("edition","first");}
試してみましょう »
XML DOM の createElement() メソッドは、新しい要素ノードを作成します。
XML DOM の createTextNode() メソッドは、新しいテキスト ノードを作成します。
XML DOM の appendChild() メソッドは、子ノードをノードに (最後の子ノードの後に) 追加します。
テキスト コンテンツを含む新しい要素を作成するには、新しい要素ノードと新しいテキスト ノードを同時に作成し、それを既存のノードに追加します。
次の例では、次のテキストを含む新しい要素 (<edition>) を作成し、それを最初の <book> 要素に追加します。
newel=xmlDoc.createElement("edition");newtext=xmlDoc.createTextNode("First");newel.appendChild(newtext);x=xmlDoc.getElementsByTagName("book");x[0].appendChild(newel);
試してみましょう »
例の説明
<edition> 要素を作成する
値「First」を使用してテキスト ノードを作成します。
このテキスト ノードを新しい <edition> 要素に追加します
<edition> 要素を最初の <book> 要素に追加します
次の例では、最初の <book> 要素の最初のノードを削除します。
x=xmlDoc.getElementsByTagName("book")[0];x.removeChild(x.childNodes[0]);
試してみましょう »
注:上記の例の結果は、使用するブラウザによって異なる場合があります。 Firefox は改行文字を空のテキスト ノードとして扱いますが、Internet Explorer は扱いません。この問題とその回避方法の詳細については、XML DOM チュートリアルを参照してください。