Re: Detection d'erreur sur document()
Bruno Chatel <[email protected]> Fri, 14 Dec 2007 23:07:08 +0100
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <[email protected]> |
Bonjour, Si vous utilisez un processeur compatible XSLT2 (et XPATH2), vous pouvez utiliser la fonction doc-available qui renvoit un booleén : http://www.w3.org/TR/xquery-operators/#func-doc-available Cordialement -- Bruno Chatel Tel : (+33) (0)4 96 11 14 57 [email protected] http://www.chadocs.com -------------------------------------- Eric van der Vlist wrote : > Bonjour, > Le mercredi 12 décembre 2007 à 13:58 +0100, Philippe Prados a écrit : > >> Dans un feuille XSL, je souhaite insérer un extrait XML dans un document >> s'il est présent, ou le construire s'il n'est pas présent. >> Lorsque j'indique un document($filename), s'il n'est pas présent j'ai >> une erreur. >> > > En fait, la recommandation XSLT laisse aux processeurs XSLT le choix de > signaler l'erreur ou non : "Si l'extraction de la ressource se solde par > une erreur alors, le processeur XSLT peut signaler l'erreur; s'il ne le > fait pas, il doit récupérer sur l'erreur en retournant un ensemble vide > de noeuds." > > http://xmlfr.org/w3c/TR/xslt/#function-document > > Lorsque l'implémentation que vous utilisez génère une erreur, vous ne > pouvez pas y faire grand chose, si ce n'est choisir une autre > implémentation (telle que Saxon) qui ne génère pas d'erreur! > > >> Comment éviter cela et faire un test pour traiter l'erreur ? >> > > Cela ne permet pas d'éviter l'erreur, mais lorsque le processeur XSLT ne > génère pas d'erreur, la recommandation spécifie qu'il doit retourner un > ensemble de noeuds vide. Dans ce cas, il suffit alors de tester si > l'ensemble de noeuds est vide pour savoir s'il y a un document ou non : > > <xsl:choose> > <xsl:when test="document('doc.xml')/*">Il y a un document :-)</xsl:when> > <xsl:otherwise>Il n'y en a pas :-( ...</xsl:otherwise> > </xsl:choose> > > Cordialement, > > Eric van der Vlist > > >> Merci >> >> Philippe >> > >