php8.5
Home/ Manual/ dom / domnode/ DOMNode::C14N

DOMNode::C14N

PHP function Edit on GitHub ✎

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Canonicalize nodes to a string

Description

DOMNode::C14N(bool $exclusive = false, bool $withComments = false, array|null $xpath = null, array|null $nsPrefixes = null): string|false

Canonicalize nodes to a string

Parameters

exclusive

Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.

withComments

Retain comments in output.

xpath
nsPrefixes

An array of namespace prefixes to filter the nodes by.

Return Values

Returns canonicalized nodes as a stringFalseforfailure

Examples

Example with XPath query

This example demonstrates advanced usage canonicalizing and filtering the nodes by an XPath query.

php
<?php

$dom = new DOMDocument();
$dom->loadXML(<<<XML
<root xmlns:food="urn:food">
    <!-- redundant namespace declaration will be canonicalized -->
    <food:fruit xmlns:food="urn:food">Apple</food:fruit>
    <food:fruit>Orange</food:fruit>
    <food:fruit>Pear</food:fruit>
    <!-- vegetables here -->
    <food:vegetable>Lettuce</food:vegetable>
</root>
XML);

echo $dom->C14N(true, false, [
    "query" => ".//f:fruit|.//f:fruit/text()",
    "namespaces" => ["f" => "urn:food"],
]);
?>

The above example will output:

output
<food:fruit>Apple</food:fruit><food:fruit>Orange</food:fruit><food:fruit>Pear</food:fruit>

See Also

  • DOMNode::C14NFile

Source: reference/dom/domnode/c14n.xml · from the official PHP manual (php/doc-en)