DOMNode::C14N
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DOMNode::C14N — Canonicalize nodes to a string
Description
public DOMNode::C14N(
bool
bool
?array
?array
): string|false
bool
$exclusive = false,bool
$withComments = false,?array
$xpath = null,?array
$nsPrefixes = null): string|false
Canonicalize nodes to a string
Parameters
exclusiveEnable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.
withCommentsRetain comments in output.
xpathAn array of XPaths to filter the nodes by. Each entry in this array is an associative array with:
- A required
querykey containing the XPath expression as a string. - An optional
namespaceskey containing an array that maps namespace prefixes (keys) to namespace URIs (values).
- A required
nsPrefixesAn 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::C14NFile() - Canonicalize nodes to a file
↑ and ↓ to navigate • Enter to select • Esc to close • / to open