Bonjour,
Je soumet la problématique sur laquelle je travaille depuis 2 jours à votre sagacité.
Voici le fichier en entrée :
et je dois générer un fichier contenant des bons de commande (B) et des lignes article (A) et de remise (R) sous la forme suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <root> <ligne>B</ligne> <ligne>A</ligne> <ligne>A</ligne> <ligne>R</ligne> <ligne>B</ligne> <ligne>A</ligne> <ligne>B</ligne> <ligne>A</ligne> <ligne>A</ligne> <ligne>A</ligne> </root>
Je vous passe les attributs qui sont hors sujets. J'ai essayé de nombreuses possibilités et je sais que pour séparer 2 éléments il faudra passer un following-sibling::ligne[.,1,1] = 'B' mais à chacune de mes tentatives j'ajoute à mon fichier de sortie la totalité des lignes articles et non uniquement celles précédant la ligne 'B' suivante...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <root> <bonDeCommande><ligneArticle /><ligneArticle /><ligneRemise /></bonDeCommande> <bonDeCommande><ligneArticle /></bonDeCommande> <bonDeCommande><ligneArticle /><ligneArticle /><ligneArticle /></bonDeCommande> </root>
Le but est vous l'avez compris de transformer un fichier plat généré par un gros système incapable de générer autre chose que des infos en ligne texte (ex: date colonne 2 à colonne 10...) en un fichier XML exploitable.
L'idéal serait de pouvoir mettre le fichier brut de fonderie en entrée
mais là, dites-moi si je me trompe, le parser XSL sera incapable de faire quoi que ce soit s'il n'y a pas au moins une balise <root>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 B A A R B A B A A A
Si quelqu'un a l'idée lumineuse qui va bien, ce sera sympa...
Merci d'avance !!!!
Partager