[XSLT] Sélectionner les attributs d'un espace de noms particulier
Stephane Bortzmeyer <[email protected]>
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <[email protected]> |
Je cherche à faire une template en XSLT 1 qui s'appliquera à tous les
attributs des éléments d'un espace de noms particulier.
Pour des éléments, c'est facile :
<xsl:template match="xhtml:*">
Pour des attributs, ceci est refusé par xsltproc et sablotron :
<xsl:template match="xhtml:@*">
xsltCompileStepPattern : Name expected
compilation error: file copy-with-namespaces.xsl line 14 element template
xsltCompilePattern : failed to compile 'xhtml:@*'
Comment faire ?
Pour ceux qui veulent tout savoir, le scénario est celui d'un schéma
XML où on peut mettre des fragments de XHTML dans un élément
<html>. Le programme XSLT convertit ces documents en XHTML et,
lorsqu'il rencontre du XHTML, doit le copier verbatim. Ce que j'ai de
moins pire pour l'instant est :
<xsl:template match="html">
<div>
<xsl:apply-templates select="xhtml:*"/>
</div>
</xsl:template>
<xsl:template match="@*|xhtml:*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>