1 pièce(s) jointe(s)
Script XSLT pour renommer
Bonjour,
je souhaite renommer les noms de mes balises et ceci via talend. J'ai une table qui contient les transformations et les champs qui vont subir ces transformation et pour chaque ligne je stock ça dans une variable et apres executer le script suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="" indent="yes" />
<xsl:param name = "generique" select = "' '"/>
<xsl:param name = "arbre" select = "XXX/Pers/nom"/>
<xsl:template match= "{$arbre}">
<xsl:element name="{$generique}">
<xsl:apply-templates select="@*[name()!='val']|node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="@*|node()" priority="0">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet> |
Avec arbre contient ce que je veux transformer et generique contient les nouveaux noms
Mais le script ne marche pas, il m'affiche une erreur comme quoi: il y aura rien à selectionner pour cette ligne
Code:
<xsl:apply-templates select="@*[name()!='val']|node()"/>
ci-joint le fichier XSL
Merci pour votre aide
2 pièce(s) jointe(s)
Replace de balises avec du xslt
Bonjour les amis,
Je suis bloquée sur un sujet depuis quelques jours et j'ai vraiment besoin d'aide.
Je travaille actuellement sur Talend et j'utilise le composant txslt qui permet de faire des transformations sur un fichiers xml par le biais d'un fichiers xslt (voir les pièces jointes)
Ce composant permet également de définir des paramètres qui pourront être appelés par le fichiers xslt.
L'objectif de cette utilisation est de pouvoir faire des replaces de balises dans mon fichiers xml de façon itérative. Je m'explique : j'ai une table contenant trois colonnes :
Col1 : chemin de la balise (par exemple Personne)
Col2 : nom des balises à modifier (nom)
Col3 : nom des balises pour modification (C_N_N)
Mon traitement fait en sorte que mon fichier xslt s'exécute en boucle sur chaque ligne de la table en prenant "col1"+"/"+"clo2" et "col3" comme paramètres.
Le xslt que j'ai utilisé XSLT.png utilise les paramètres :
chemin = Personne/nom (chemin + balise à remplacer);
generique = C_N_N (balise de remplacement);
J'ai vu malheureusement qu'on ne peut pas utiliser $param dans le match d'un template c'est pour cela que j'ai eu l'idée de mettre par exemple le chemin en dur dans le <xsl:template match> et utiliser une fonction qui ferai le replace en prenant juste col2 et col3 comme paramètre. Cela est-il possible ?
Merci infiniment pour votre aide.