Cet exemple démontre une utilisation avancée par la canonicalisation et le filtrage des nœuds via une requête XPath.
<?php
$dom = new DOMDocument();
$dom->loadXML(<<<XML
<root xmlns:food="urn:food">
<!-- déclaration d'espace de noms redondante qui sera canonisée -->
<food:fruit xmlns:food="urn:food">Pomme</food:fruit>
<food:fruit>Orange</food:fruit>
<food:fruit>Poire</food:fruit>
<!-- légumes ici -->
<food:vegetable>Laitue</food:vegetable>
</root>
XML);
echo $dom->C14N(true, false, [
"query" => ".//f:fruit|.//f:fruit/text()",
"namespaces" => ["f" => "urn:food"],
]);
?>
L'exemple ci-dessus va afficher :
<food:fruit>Pomme</food:fruit><food:fruit>Orange</food:fruit><food:fruit>Poire</food:fruit>