XML DOM 上級


XML DOM - 上級

にこのチュートリアルの以前の章では、XML DOM を紹介し、XML DOM の getElementsByTagName() メソッドを使用して XML ドキュメントからデータを取得しました。

この章では、その他の重要な XML DOM メソッドをいくつか紹介します。

当サイトのXML DOM チュートリアルで、XML DOM に関する詳細を学ぶことができます。


要素の値を取得する

以下の例で使用する XML ファイル:。

次の例では、最初の <title> 要素のテキスト値を取得します:

例

txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;

試してみる »


属性の値を取得する

次の例では、最初の <title> 要素の "lang" 属性のテキスト値を取得します:

例

txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");

試してみる »


要素の値を変更する

次の例では、最初の <title> 要素のテキスト値を変更します:

例

x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Cooking";

試してみる »


新しい属性を作成する

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>)をテキスト「First」付きで作成し、それを最初の <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 チュートリアルで、この問題とその回避方法について詳しく読むことができます。

その他の拡張