【PHP8.x】createElementメソッドの使い方
createElementメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
createElementメソッドは、新しいDOM要素(ノード)を作成するメソッドです。
このメソッドは、DOMDocumentクラスに属しており、PHPプログラム内でXMLやHTMLなどのドキュメント構造を操作する際に利用されます。主に、指定されたタグ名を持つ新しい要素ノードを生成するために使用されます。
第一引数には必須となるnameがあり、これは作成したい要素のタグ名(例:「p」、「div」、「img」など)を文字列で指定します。例えば、「book」という名前を指定すれば、<book></book>のような要素が作成される基盤となります。第二引数にはオプションとしてvalueがあり、ここに文字列を指定すると、その文字列が作成される要素のテキストコンテンツとして設定されます。
このメソッドは、新しく作成されたDOMElementオブジェクトを返します。ただし、この時点では作成された要素はまだドキュメントツリーのどこにも追加されていません。作成した要素を実際のドキュメントに追加するには、通常、DOMNode::appendChildメソッドなどを用いて、既存の親ノードの子ノードとして明示的に追加する必要があります。
createElementメソッドを利用することで、プログラムから動的にXMLやHTMLの構造を構築したり、既存のドキュメントに新しい要素を追加したりすることが可能になります。例えば、ウェブページに新しい段落や見出しを追加する場合、あるいはXMLデータに新しいレコードを追加する場合などに非常に役立ちます。これにより、柔軟なドキュメント生成や編集が実現できます。
構文(syntax)
1<?php 2$dom = new DOMDocument('1.0', 'UTF-8'); 3$element = $dom->createElement('elementName', 'elementValue');
引数(parameters)
string $localName, string $value = ''
- string $localName: 生成する要素の名前を指定する文字列
- string $value = '': 要素に設定するテキストコンテンツを指定する文字列 (省略可能)
戻り値(return)
DOMElement
指定された名前の新しいDOMElementノードを生成し、それを返します。
サンプルコード
PHP DOMDocumentで名前空間付き要素を作成する
1<?php 2 3// DOMDocumentを生成 4$dom = new DOMDocument('1.0', 'UTF-8'); 5 6// ルート要素を生成 7$root = $dom->createElement('root'); 8$dom->appendChild($root); 9 10// 名前空間URI 11$namespaceURI = 'http://example.com/namespace'; 12 13// 名前空間URIを指定して要素を生成 14$element = $dom->createElementNS($namespaceURI, 'prefix:elementName', 'elementValue'); 15 16// ルート要素に要素を追加 17$root->appendChild($element); 18 19// ドキュメントを文字列として出力 20echo $dom->saveXML(); 21 22?>
PHPでXMLドキュメントを操作する際、DOMDocumentクラスのcreateElementNSメソッドは、名前空間URIを指定してXML要素を生成するために使用されます。このメソッドは、DOMDocumentオブジェクトを通じて呼び出され、新しいDOMElementオブジェクトを返します。
createElementNSメソッドは、以下の引数を取ります。
-
string $namespaceURI: 生成する要素の名前空間URIを指定します。名前空間はXMLドキュメント内で要素名の衝突を避けるために用いられます。 -
string $qualifiedName: 名前空間プレフィックスと要素名をコロンで区切った文字列です。例: 'prefix:elementName'。プレフィックスは、名前空間URIに対応付けられます。 -
string $value: 要素のテキストコンテンツ(値)を指定します。省略可能です。
サンプルコードでは、まずDOMDocumentオブジェクトを作成し、ルート要素を追加しています。次に、createElementNSメソッドを使用して、http://example.com/namespaceという名前空間URIを持つ要素を生成しています。生成された要素の名前は prefix:elementName、値は elementValue です。この要素は、ルート要素の子要素として追加されます。最後に、saveXMLメソッドを使用して、XMLドキュメントを文字列として出力しています。
createElementNSメソッドを使用することで、複雑なXMLドキュメントを名前空間を考慮して正確に構築できます。特に、複数のXMLスキーマや異なるソースからのデータを統合する場合に重要となります。
createElementNSは名前空間URIを指定して要素を作成するメソッドです。createElementと異なり、XML名前空間を扱う場合に必須となります。第1引数に名前空間URI、第2引数に要素名(prefix:localNameの形式)を指定します。prefixは名前空間の接頭辞で、XMLドキュメント内で名前空間URIを簡略化するために使用されます。接頭辞は事前に定義されている必要があります。第3引数は要素のテキストノードの値です。名前空間URIが間違っていると、XMLの構造が正しく解釈されない可能性がありますので注意が必要です。