【PHP8.x】saveXMLメソッドの使い方

saveXMLメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

saveXMLメソッドは、DOMDocumentオブジェクトが内部的に保持しているXMLツリー構造を、文字列形式に変換して出力するメソッドです。このメソッドを引数なしで呼び出すと、XML宣言を含むドキュメント全体が、整形されたXML文字列として返されます。特定の要素だけをXML文字列として取得したい場合は、第1引数に対象となるDOMNodeオブジェクトを指定します。これにより、指定したノードとそのすべての子孫ノードを含む部分的なXML文字列を生成することが可能です。また、第2引数にはオプションのフラグを指定でき、例えば空要素の表現方法など、出力形式を細かく制御できます。メソッドの実行が成功した場合は生成されたXML文字列を、失敗した場合は false を返します。このメソッドは、プログラム上で動的に生成または変更したXMLデータを、ファイルへ保存したり、APIのレスポンスとして送信したりする際の基本的な操作として利用されます。

構文(syntax)

1<?php
2// DOMDocumentオブジェクトを作成します
3$doc = new DOMDocument('1.0', 'UTF-8');
4
5// 出力するXMLを整形するオプションを有効にします
6$doc->formatOutput = true;
7
8// 要素を作成します
9$root = $doc->createElement('book');
10$title = $doc->createElement('title', 'はじめてのPHP');
11$author = $doc->createElement('author', '山田太郎');
12
13// 要素を親子関係になるように組み立てます
14$root->appendChild($title);
15$root->appendChild($author);
16$doc->appendChild($root);
17
18// ドキュメント全体をXML形式の文字列として取得します
19// saveXML(?DOMNode $node = null, int $options = 0): string|false
20$xmlString = $doc->saveXML();
21
22// 結果を出力します
23echo $xmlString;
24
25// 特定のノード(<title>要素)のみをXML文字列として取得します
26$titleNodeString = $doc->saveXML($title);
27
28// 結果を出力します
29echo $titleNodeString;

引数(parameters)

?DOMNode $node = null, int $options = 0

  • DOMNode | null $node: 保存するDOMNodeを指定します。省略した場合、DOMDocument全体が保存されます。
  • int $options = 0: 保存時のオプションを指定します。

戻り値(return)

string|false

XMLドキュメント全体を文字列として返します。処理に失敗した場合はfalseを返します。

【PHP8.x】saveXMLメソッドの使い方 | いっしー@Webエンジニア