DOMNode::C14N

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

DOMNode::C14NCanoniza nodos en una cadena

Descripción

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

Canoniza nodos en una cadena de caracteres.

Parámetros

exclusive

Activa el análisis de los únicos nodos correspondientes al XPath o a los prefijos de espacio de nombres proporcionados.

withComments

Conserva los comentarios en la salida.

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

Un array de prefijos de espacios de nombres utilizados para filtrar los nodos.

Valores devueltos

Devuelve los nodos canonizados, en forma de una chaîne de caractères o false en caso de error

Ejemplos

Ejemplo #1 Ejemplo con una consulta XPath

Este ejemplo demuestra un uso avanzado mediante la canonicalización y el filtrado de nodos a través de una consulta XPath.

<?php

$dom
= new DOMDocument();
$dom->loadXML(<<<XML
<root xmlns:food="urn:food">
<!-- declaración de espacio de nombres redundante que será canonizada -->
<food:fruit xmlns:food="urn:food">Pomme</food:fruit>
<food:fruit>Orange</food:fruit>
<food:fruit>Poire</food:fruit>
<!-- vegetales aquí -->
<food:vegetable>Laitue</food:vegetable>
</root>
XML);

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

El resultado del ejemplo sería:

<food:fruit>Pomme</food:fruit><food:fruit>Orange</food:fruit><food:fruit>Poire</food:fruit>

Ver también