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

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

作成日: 更新日:

基本的な使い方

C14NFileメソッドは、HTMLElementオブジェクトが表すノードとその子孫ノードを正規化(C14N)し、その結果を指定されたファイルに保存する処理を実行するメソッドです。正規化とは、XML文書をW3Cが定める標準形式(Canonical XML)に変換するプロセスを指します。この処理により、属性の順序や空白文字の扱いなどが統一され、論理的に等価な文書は必ず同一のバイト列表現を持つようになります。この特性は、XMLデジタル署名などで文書の同一性を厳密に検証する際に不可欠です。このメソッドは、第一引数に出力先のファイルパスを文字列で指定する必要があります。さらに、オプションの引数を渡すことで、特定のノードセットのみを対象とする排他的正規化の実行、コメントノードの出力有無、XPath式による対象ノードの限定、名前空間プレフィックスの指定など、より詳細な正規化処理を制御することができます。処理が成功した場合はファイルに書き込まれたバイト数を整数で返し、失敗した場合は false を返します。

構文(syntax)

1$bytes_or_false = $htmlElement->C14NFile(
2    uri: 'path/to/output.xml',
3    exclusive: false,
4    withComments: false,
5    xpath: null,
6    nsPrefixes: false
7);

引数(parameters)

string $uri, bool $exclusive = false, bool $withComments = false, ?array $xpath = null, ?array $nsPrefixes = null

  • string $uri: 正規化するXMLドキュメントのURIを指定します。
  • bool $exclusive = false: 排他ノードセットを使用するかどうかを指定します。
  • bool $withComments = false: コメントを含めて正規化するかどうかを指定します。
  • ?array $xpath = null: 正規化するノードをXPathで指定します。
  • ?array $nsPrefixes = null: 名前空間のプレフィックスをマッピングする連想配列を指定します。

戻り値(return)

int|false

このメソッドは、XML要素の正規化処理が成功した場合は1を、失敗した場合はfalseを返します。

関連コンテンツ

関連プログラミング言語