(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DOMNode::C14N — Canonicaliza nós para uma string
$exclusive
= false
,$withComments
= false
,$xpath
= null
,$nsPrefixes
= null
Canonicaliza nós para uma string
exclusive
Habilita a análise exclusiva apenas dos nós correspondentes à expressão xpath fornecida ou aos prefixos de namespace.
withComments
Mantém comentários na saída.
xpath
Um array de XPaths pelos quais os nós serão filtrados. Cada entrada neste array é um array associativo com:
query
requerida, contendo a expressão XPath como uma string.
namespaces
opcional, contendo um array que mapeia prefixos de namespaces (chaves) para URIs de namespaces (valores).
nsPrefixes
Um array de prefixos de namespace para filtrar os nós.
Retorna nós canonizados como uma string ou false
em caso de falha
Exemplo #1 Exemplo com consulta XPath
Este exemplo demonstra um uso avançado canonizando e filtrando os nós por um consulta XPath.
<?php
$dom = new DOMDocument();
$dom->loadXML(<<<XML
<root xmlns:comida="urn:comida">
<!-- declaração de namespace redundante será canonizada -->
<comida:fruta xmlns:comida="urn:comida">Maçã</comida:fruta>
<comida:fruta>Laranja</comida:fruta>
<comida:fruta>Pera</comida:fruta>
<!-- folhas aqui -->
<comida:folha>Alface</comida:folha>
</root>
XML);
echo $dom->C14N(true, false, [
"query" => ".//f:fruta|.//f:fruta/text()",
"namespaces" => ["f" => "urn:comida"],
]);
?>
O exemplo acima produzirá:
<comida:fruta>Maçã</comida:fruta><comida:fruta>Laranja</comida:fruta><comida:fruta>Pera</comida:fruta>