Overview
KB
Technical FAQ
PHP Manual
CSS2 Manual
HTML Manual
JS Guide
JS Reference
PhpDock Manual
Nu-Coder Manual
PhpExpress Manual
PHP Joomla
Development
Learn PHP
 
<DOMNode::appendChildDOMNode::C14NFile>
^DOMNodeLast updated: Mon, 26 Oct 2026

DOMNode::C14N

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

DOMNode::C14N — Canonicalize nodes to a string

Description

public function DOMNode::C14N(
    bool $exclusive = false,
    bool $withComments = false,
    ?array $xpath = null,
    ?array $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

An array of XPaths to filter the nodes by. Each entry in this array is an associative array with:

  • A required query key containing the XPath expression as a string.

  • An optional namespaces key containing an array that maps namespace prefixes (keys) to namespace URIs (values).

nsPrefixes

An array of namespace prefixes to filter the nodes by.

Return Values

Returns canonicalized nodes as a string or false on failure

Examples

Example #1 Example with XPath query

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

<?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:

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

See Also


<DOMNode::appendChildDOMNode::C14NFile>
^DOMNodeLast updated: Mon, 26 Oct 2026