DOMNode::C14N

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

DOMNode::C14NCanonise des nœuds en une chaîne

Description

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

Canonise des nœuds en une chaîne de caractères.

Liste de paramètres

exclusive

Active l'analyse des seuls nœuds correspondant à l'Xpath ou aux préfixes d'espace de noms fournis.

withComments

Conserve les commentaires dans la sortie.

xpath

Un tableau de XPaths pour filtrer les nœuds. Chaque entrée dans ce tableau est un tableau associatif avec :

  • Une clé query requise contenant l'expression XPath en tant que chaîne de caractères.
  • Une clé namespaces optionnelle contenant un tableau qui mappe les préfixes de l'espace de noms (clés) aux URI de l'espace de noms (valeurs).

nsPrefixes

Un tableau de préfixes d'espaces de noms utilisés pour filtrer les nœuds.

Valeurs de retour

Retourne les nœuds canonisés, sous la forme d'une chaîne de caractères ou false si une erreur survient

Exemples

Exemple #1 Exemple avec une requête XPath

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>

Voir aussi