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

Un array de XPaths para filtrar los nodos. Cada entrada en este array es un array asociativo con :

  • Una clave query requerida que contiene la expresión XPath como cadena de caracteres.
  • Una clave namespaces opcional que contiene un array que mapea los prefijos del espacio de nombres (claves) a los URI del espacio de nombres (valores).

nsPrefixes

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

Valores devueltos

Devuelve los nodos canonizados, en forma de una string o false si ocurre un 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 ejemplo anterior mostrará :

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

Ver también