ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

XML DOM ノードの置換

« 前章へ 次章へ »

replaceChild() メソッドは、指定したノードを置換します。

nodeValue プロパティは、テキストノードのテキストを置換します。


以下の例は、XMLファイルbooks.xmlを使用します。
外部JavaScriptの関数 loadXMLDoc()は、XMLファイルをロードするのに使用します。

要素ノードの置換
この例は、replaceChild()を使用して、最初の<book>ノードを置換します。

テキストノードのデータを置換
この例は、nodeValueプロパティを使用して、テキストノードのデータを置換します。


要素ノードの置換

replaceChild() メソッドは、ノードを置換するのに使用します。

以下のコードは、最初の <book> 要素を置換します:

Example

xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement;

//book要素、title要素 及び テキストノードの作成
newNode=xmlDoc.createElement("book");
newTitle=xmlDoc.createElement("title");
newText=xmlDoc.createTextNode("A Notebook");

//titleノードへのテキストノード追加
newTitle.appendChild(newText);
//bookノードへの titleノード追加
newNode.appendChild(newTitle);

y=xmlDoc.getElementsByTagName("book")[0]
//新ノードで最初のbookノードを置換
x.replaceChild(newNode,y);

試してください »

例の説明:

  1. loadXMLDoc()を用い、xmlDocに"books.xml"をロードします
  2. 新規要素ノード<book>を作成します
  3. 新規要素ノード<title>を作成します
  4. テキスト"A Notebook"を持つ、新規テキストノード<book>を作成します
  5. 新しいテキストノードを、新規要素ノード<title>に付加します
  6. 新しい要素ノード<title>を、新規要素ノード<book>に付加します
  7. 新しい<book>要素ノードで、最初の<book>要素ノードを置換します

テキストノードのデータ置換

replaceData()メソッドは、テキストノードのデータ置換に使用します。

replaceData()メソッドには、3つのパラメタがあります:

  • オフセット - 文字の置換をどこから始めるか。オフセット値はゼロからスタートします
  • 長さ - 置換する文字数
  • 文字列 - 挿入する文字列

Example

xmlDoc=loadXMLDoc("books.xml");

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

x.replaceData(0,8,"Easy");

試してください »

例の説明:

  1. loadXMLDoc()を用い、xmlDocに"books.xml"をロードします
  2. 最初の<title>要素ノードの、テキストノードを取得します
  3. テキストノードの先頭から8文字を、"Easy"に置換するためreplaceDatメソッドを使用します

代わりにnodeValueプロパティを使用する

nodeValueプロパティを使用すると、テキストノードのデータ置換がより簡単になります。

以下のコードは、最初の<title>要素のテキストノード値を、"Easy Italian"に置換します:

Example

xmlDoc=loadXMLDoc("books.xml");

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

x.nodeValue="Easy Italian";

試してください »

例の説明:

  1. loadXMLDoc()を用い、xmlDocに"books.xml"をロードします
  2. 最初の<title>要素ノードのテキストノードを取得します
  3. nodeValueプロパティを使用し、テキストノードのテキストを変更します

ノードの文字変更の章で、ノード値を変えることに関してもう少し読むことができます。


« 前章へ 次章へ »