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

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

作成日: 更新日:

基本的な使い方

DOMNotationクラスのC14NFileメソッドは、指定されたノードをW3C勧告の「Canonical XML Version 1.1」に従って、XMLドキュメントの正規化(Canonicalization)を行い、その結果を指定されたファイルに保存するメソッドです。このメソッドは、XML文書の一部分木を、プラットフォームやエンコーディングに依存しない一貫した形式に変換するために使用されます。

具体的には、指定されたノードから始まるXML文書を正規化し、その結果を引数で指定されたファイルパスに保存します。正規化処理には、属性の並び替え、名前空間宣言の整理、コメントの削除、空白の正規化などが含まれます。

このメソッドは、XML文書のデジタル署名や、XML文書の比較、XML文書のキャッシュなど、さまざまな場面で役立ちます。異なる環境で生成されたXML文書を比較したり、同じXML文書であるかどうかを検証したりする場合に、正規化処理を行うことで、プラットフォームやエンコーディングの違いによる影響を排除し、正確な比較が可能になります。

C14NFileメソッドを使用することで、XML文書の相互運用性を高め、データの一貫性を保つことができます。システムエンジニアは、このメソッドを利用することで、XML文書を扱うアプリケーションの信頼性と安定性を向上させることができます。引数には、正規化するノードと、出力先のファイルパスを指定します。ファイルパスが存在しない場合は、新たにファイルが作成されます。

構文(syntax)

1$notation->C14NFile(
2    uri: 'path/to/save.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: Canonicalize (正規化) するXMLファイルまたはDOMDocumentオブジェクトのURIを指定します。
  • bool $exclusive = false: falseの場合、すべてのノードが正規化されます。trueの場合、指定されたXPath式に一致するノードのみが正規化されます。
  • bool $withComments = false: trueの場合、コメントノードも正規化に含まれます。
  • ?array $xpath = null: $exclusive が true の場合に、正規化の対象とするノードを指定するXPath式の配列です。
  • ?array $nsPrefixes = null: 名前空間のプレフィックスをマッピングする連想配列です。

戻り値(return)

bool

DOMDocument::C14NFile メソッドは、XML 文書を正規化してファイルに保存する操作が成功したかどうかを示す真偽値を返します。成功した場合は true を、失敗した場合は false を返します。

関連コンテンツ

関連プログラミング言語