Bonjour à tous,
J'ai une erreur lorsque j'utilise "following-sibling" dans une
expression de "match=.."
(par exemple : <xsl:template match="following-sibling::noeud">)
(error : xsltCompileStepPattern : 'child' or 'attribute' expected)
message d'erreur retourné par xsltproc sous linux (voir infos version à
la fin du message, si ca peut éclairer).
Je ne sais pas si il s'agit de ma mauvaise compréhension des expressions
qu'on peut utiliser dans un "match=.." (fort probable), ou si il s'agit
d'une limitation du processeur xslt que j'utilise.
En revanche, si je met le "following-sibling" dans un "select=.."
(par exemple : <xsl:apply-templates select="following-sibling::noeud"/>)
ca fonctionne sans problème.
Voilà, ma question s'arrète là.
Merci d'avance à tous ceux qui pourraient éclairer ma lanterne.
Alexandre
PS.. si vous voulez plus de détails sur ce qui m'ammène à poser cette
question :
J'essaies de transformer la structure d'un document xml.
<!-- exemple simplifié et synthétique du document original -->
<..>
<parent>(1 à n)
<sibling>(1 à n)
<sibling-précédent>
<detail ordre="1">detail 1 (à n)<![CDATA[code]]></detail>
<..>
</parent>
<..>
<!-- ----------------------------------------------------- -->
<!-- résultat souhaité------------------------------------ -->
<..>
<parent>(1 à n)
<sibling>(1 à n)
<sibling-précédent>
<details>
<detail ordre="1">detail 1 (à n)<![CDATA[code]]></detail>
<..>
</details>
</parent>
<..>
<!-- ----------------------------------------------------- -->
J'aimerais donc utiliser
<!-- par exemple ---------------------------------------- -->
<xsl:template match="/">
<xsl:copy>
<xsl:apply-templates select="@* | * | text()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="following-sibling::sibling-précédent">
<details>
<xsl:copy>
<xsl:apply-templates select="@* | * | text()"/>
</xsl:copy>
</details>
</xsl:template>
<!-- ----------------------------------------------------- -->
... ça serait sympa si ça marchait comme ça... au moins j'aurais
l'impression de comprendre un peu xslt et xpath ;)
Outre le problème principal, j'ai un autre petit problème : les copies
(<xsl:copy> ou <xsl:copy-of..>) suppriment mes balises <![CDATA[]]>. Je
ne sais pas comment faire pour les conserver.
...merci d'avoir lu jusque là :]
Versions libxml et xslt :
Using libxml 20617, libxslt 10112 and libexslt 810
xsltproc was compiled against libxml 20617, libxslt 10112 and libexslt 810
libxslt 10112 was compiled against libxml 20617
libexslt 810 was compiled against libxml 20617
--
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 Thu Feb 3 02:39:15 2005