【PHP8.x】C14Nメソッドの使い方
C14Nメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
『C14Nメソッドは、呼び出された要素ノードとそのすべての子孫を、W3C勧告に基づいた正規化(Canonicalization)形式の文字列として取得する処理を実行するメソッドです。XMLの正規化とは、意味的に同じ内容を持つXML文書でも、属性の記述順序や空白の有無といった物理的な表現の違いによってデータが異なってしまうことを防ぎ、常に一意のバイト列に変換する処理を指します。このメソッドを利用することで、例えば、異なるシステムで生成されたXMLデータであっても、その論理的な内容が等しいかどうかを文字列として厳密に比較することが可能になります。デジタル署名の検証など、データの完全性が求められる場面で特に重要です。引数を指定することで、コメントノードを含めるかどうかの制御や、特定の名前空間の扱いを指定する排他的正規化など、詳細なルールを適用することもできます。処理に成功した場合は正規化された文字列を、失敗した場合はfalseを返します。』
構文(syntax)
1Dom\Element::C14N( 2 bool $exclusive = false, 3 bool $withComments = false, 4 ?array $xpath = null, 5 ?array $nsPrefixes = null 6): string|false
引数(parameters)
bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null
- bool $exclusive = false: 排他的な正規化を行うかどうかを指定します。true の場合、親要素の名前空間は除外されます。
- bool $withComments = false: コメントを含めて正規化するかどうかを指定します。
- ?array $xpath = null: 正規化の対象となる XPath 式の配列を指定します。
- ?array $nsPrefixes = null: 正規化の対象となる名前空間プレフィックスの配列を指定します。
戻り値(return)
string|false
C14Nメソッドは、XML要素を正規化された文字列として返します。正規化に失敗した場合はfalseを返します。