update page now
PHP 8.5.4 Released!

Gestion des erreurs avec les fonctions de gestion d'erreur libxml

libxml fournit des fonctions pour gérer les erreurs qui peuvent être utilisées pour capturer et gérer celles-ci lors du traitement XSLT.

Exemple #1 fruits.xml

Un fichier XML valide.

<fruits>
 <fruit>Apple</fruit>
 <fruit>Banana</fruit>
 <fruit>Cherry</fruit>
</fruits>

Exemple #2 fruits.xsl

Contient une expression select invalide.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="fruits">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>
 <xsl:template match="fruit">
  <li><xsl:value-of select="THIS IS A DELIBERATE ERROR!"/></li>
 </xsl:template>
</xsl:stylesheet>

Exemple #3 Collecte et affichage des erreurs

L'exemple ci-dessous capture et affiche les erreurs libxml levées lors de l'appel à XSLTProcessor::importStyleSheet() avec une feuille de style contenant une erreur.

<?php

$xmldoc
= new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!
$result) {
foreach (
libxml_get_errors() as $error) {
echo
"Libxml error: {$error->message}\n";
}
}
libxml_use_internal_errors(false);

if (
$result) {
echo
$xsl->transformToXML($xmldoc);
}

?>

Résultat de l'exemple ci-dessus est similaire à :

Libxml error: Invalid expression

Libxml error: compilation error: file fruits.xsl line 9 element value-of
Libxml error: xsl:value-of : could not compile select expression 'THIS IS A DELIBERATE ERROR!'

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top