【PHP8.x】Dom\Entity::C14NFile()メソッドの使い方
C14NFileメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『C14NFileメソッドは、エンティティノードを正規化(C14N)し、その結果をファイルに保存する処理を実行するメソッドです。正規化とは、XML文書を一意の形式に変換する標準的なプロセスのことで、Canonical XMLの略称であるC14Nとして知られています。この処理により、例えば属性の順序や空白の扱いなどが統一され、意味的に同じ内容を持つXML文書は必ず同じバイト列表現となります。これは、XMLデジタル署名の検証など、文書の同一性を厳密に比較する必要がある場面で非常に重要です。このメソッドは、第一引数に出力先のファイルパスを指定します。さらに、後続のオプション引数で、コメントを含めるかどうかや、特定のノードセットのみを対象とする排他的正規化を行うかどうかなどを制御できます。メソッドの実行が成功すると、ファイルに書き込まれたバイト数を返し、失敗した場合はfalseを返します。このメソッドを使用することで、XML文書内の特定のエンティティ部分を標準化された形式でファイルに確実に出力できます。
構文(syntax)
1public function C14NFile( 2 string $uri, 3 bool $exclusive = false, 4 bool $with_comments = false, 5 ?array $xpath = null, 6 bool $ns_prefixes = false 7): int|false;
引数(parameters)
string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null
- string $uri: 正規化するDOMドキュメントのURIを指定します。
- bool $exclusive = false: trueに設定すると、排他的な正規化モードが有効になります。
- bool $withComments = false: trueに設定すると、コメントノードも正規化対象に含まれます。
- ?array $xpath = null: 正規化対象のノードをXPath式で指定します。
- ?array $nsPrefixes = null: 名前空間プレフィックスの配列を指定します。
戻り値(return)
int|false
C14NFileメソッドは、XML文書の正規化処理が成功した場合は1を、失敗した場合はfalseを返します。