Le Mercredi 16 Juillet 2003 11:01, Jandia, Cyril a écrit :
> <xsl:element name="{local-name()}"><xsl:apply-templates select="@*|node()"
> /></xsl:element>
Attention que la forme "@*|node()" semble piégée dans le cadre de la
génération d'éléments.
En effet, elle a comme résultat un ensemble de noeuds union de @* et de
node(), et je ne sais pas très bien comment il doit être ordonné. Si le
processeur XSLT renvoit les "node()" d'abord, alors il ne pourra pas générer
les attributs de @* puisque l'élément créé aura déjà des fils.
Par exemple, si j'ai le XML suivant :
<a x="zozo">zanzibar</a>
... le XSLT suivant :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:foo="foo" version="1.0">
<xsl:template match="*">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template match="text()">
texte : <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="@*">
attribut : <xsl:value-of select="."/>
</xsl:template>
</xsl:transform>
... qui m'affiche simplement les noeuds dans lesquels il les trouve, j'obtiens
avec xsltproc :
herve ..aa> xsltproc xx.xsl xxx.xml
<?xml version="1.0"?>
texte : zanzibar
attribut : zozo
... on voit que l'attribut a été traité APRES le noeud fils. Je ne sais pas si
c'est un bogue ou autre.
Ma suggestion : pour générer un élément, utiliser
<xsl:element name="xx">
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="node()"/>
</xsl:element>
De cette façon on peut espérer que les attributs soient traités en premier.
--
SARL diaam informatique - 04 50 44 26 54
Ingenierie, développements de systèmes d'information
http://www.diaam-informatique.com
--
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 Jul 16 14:28:17 2003