Bonsoir,
Si vous parsez un XML, vous pouvez utiliser des templates xsl pour les
balises html (qui sont plutot des balises xhtml dans ce cas), (une façon
simple de vérifier que vous etes dans ce cas est d'utiliser la commande
xmllint --noout, qui vous donnera les messages d'erreur). Alors deux cas
de figure :
- soit ces balises sont identifiées comme telles en utilisant un
namespace, et il vous suffit d'écrire un template de la forme
<xsl:template match="html:*"/> qui supprimera toutes les balises xhtml
de votre document.
- soit elles ne sont pas identifiées par un namespace (votre xml n'est
probablement pas rattaché à un schéma ou à une DTD) et il vous faut
ecrire un template de la forme <xsl:template match="h1|h2|h3|p|ul ...
"/> décrivant extensivement les balises de xhtml.
Si votre document ne contient que quelques balises html pas forcément
bien agencées, pas fermées ou avec des valeurs d'attributs sans "
autour, votre document n'est pas un document xml. Dans ce cas vous ne
pouvez pas lui appliquer un xsl. Il faut au préalable "nettoyer" votre
document de façon à le rendre conforme à la spécification xml (document
bien formé). Pour cela il y a une piste : utiliser tidy qui permet de
convertir les balises "ressemblant" à du html en xhtml propre avant de
l'inclure dans votre doc xml.
En espérant que ces quelques conseils vous aideront.
Stéphane.
Le mercredi 09 février 2005 à 18:43 +0100, Thierry BOYER a écrit :
> Bonjour,
>
> Je parse un XML proposant des articles avec un XSL qui recopie le XML bien formaté.
> Or dans certains éléments XML <description> aparaissent des balises html du genre <LI>, <P>, width=, ...
> Lorsque je recopie mon XML, je souhaite outre-passer cet article et recopier le suivant, etc.
>
> J'utilise :
>
> <xsl:if test="contains(description,'li>')=false">
> <xsl:copy-of select="*" />
> ...
>
> Mais je ne peux pas paramétrer une liste de tags / chaînes de caractères pour supprimer toutes les occurences HTML...
> Y-t'il une autre solution que "contains" ?
> Peut-on passer par une DTD ?
>
> Merci pour vos précieuses réponses.
>
> thierry
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
> Cette liste est a votre disposition pour discuter en francais de
> tout sujet technique lie a XML.
>
> Pour resilier votre abonnement, envoyez un message contenant
> la commande "unsubscribe" a xml-tech-request@xmlfr.org
> (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
>
>
--
Stéphane Bonhomme -- Exselt Services
Formations, Conseil et Réalisations en Ingénierie Documentaire,
Technologies Web et Logiciels Libres
s.bonhomme@wanadoo.fr - http://www.exselt.com
04 76 17 09 40 / 06 88 57 27 08
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Wed Feb 9 20:48:44 2005