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

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

作成日: 更新日:

基本的な使い方

C14NFileメソッドは、XMLのDOM要素をW3C勧告に基づく正規化(Canonicalization)ルールに従って処理し、その結果を指定されたファイルに保存するメソッドです。このメソッドは、Dom\Elementクラスに属しており、特定のDOM要素(XML文書内のタグやその内容)に対して呼び出すことができます。

XMLの正規化とは、XML文書の内容が意味的に同じであるにもかかわらず、記述方法の些細な違い(例えば属性の順序や空白文字の扱いなど)によって異なる形式に見えてしまう問題を解決するための標準的な処理です。これにより、異なる環境で生成されたXML文書でも、常に一貫した形式で表現されるようになり、例えばデジタル署名の検証などにおいて正確な比較を可能にします。

C14NFileメソッドは、第一引数で正規化されたXMLの出力先となるファイルパスを指定します。第二引数でtrueを設定すると、元のXML文書に含まれるコメントも正規化の対象に含めることができます。また、オプションとしてXPath式や名前空間のプレフィックスを指定することで、特定の要素やその子孫要素のみを対象として正規化を実行し、ファイルに保存することも可能です。

処理が成功した場合、このメソッドはファイルに書き込まれたバイト数を整数で返します。何らかの理由で処理が失敗した場合には、falseを返します。この機能は、XML文書の信頼性や整合性を確保する必要があるシステム開発において、特に重要な役割を果たします。

構文(syntax)

1$element->C14NFile(
2    string $uri,
3    bool $exclusive = false,
4    bool $withComments = false,
5    ?array $xpath = null,
6    bool $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: 排他的正規化を行うかどうかを指定します。trueの場合、指定した要素とその子孫のみが正規化されます。
  • bool $withComments = false: コメントを含めて正規化するかどうかを指定します。trueの場合、コメントも正規化対象となります。
  • ?array $xpath = NULL: XPath式を指定して、正規化する要素の範囲を限定します。
  • ?array $nsPrefixes = NULL: 名前空間のプレフィックスを配列で指定します。

戻り値(return)

戻り値なし

戻り値はありません

関連コンテンツ

関連プログラミング言語