Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/11/2011, 11h35   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 23
Points : 10
Points : 10
Par défaut Problème requete Xpath

Bonjour mon problème est tout simple :

J'ai un fichier Xml de type

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-
<Fichier>
<Detail_Message>
<Annexe Date="2009-01-02" Reference="2139999-B-01" > 
       <Detail> ...
         <Donnee Num=1> ...
         </Donnee Num=1> 
         <Donnee Num=2> ...
         </Donnee Num=2> 
       </Detail>
...
</Annexe>
...
</Detail_Message>
</Fichier>
dans mon tfileinputXML je renseigne la requête Xpath :
"/Fichier/Detail_Message/Annexe/Detail/Donnee"

Je souhaite récupérer plusieurs donnée que j'arrive à récupérer via le mapping dont la donnée :
"../../@Reference"

Jusqu'ici tout marche.

J'aimerais dans un premier maintenant récupérer toutes les informations pour les Référence égale à cequejeveux.

J'ai essayé :
"../../@Reference='cequejeveux'"
"../../[@Reference='cequejeveux']"
"../../Annexe[@Reference='cequejeveux']" => qui me renvoie toutes les données et n'effectue pas de différence entre les références
...
en me basant sur divers tuto et forum mais rien n'y fait

donc si vous avez une petite idée je serait fortement intéressé !

dans un deuxième temps j'aimerais pouvoir effectuer la même chose mais avec l'info du type :
Reference = row1.Numero où Numero est tout simplement le nom d'une donnée contenant plusieurs "Reference".

j'utilise le row1Numero dans le même job en amont du tfileInputXml.
Est-ce possible de réaliser une telle demande ?

merci bcp !
charliplanete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 09h54   #2
Membre émérite
 
Avatar de panda31
 
Homme Michaël
Conseil - Consultant en systèmes d'information
Inscription : juin 2003
Messages : 673
Détails du profil
Informations personnelles :
Nom : Homme Michaël
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : juin 2003
Messages : 673
Points : 850
Points : 850
Bonjour,

Je n'ai pas fini d'investiguer, mais dans l'extrait XML que tu montres, la balise </Detail_Message> est mal placée car devrait être avant </Fichier>
__________________
Michaël Mary
Consultant PLM dans une société de conseil toulousaine
Auditeur CNAM-IPST depuis septembre 2008
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
John F. Woods
mon cv et mon domaine et mon blog
Aucune question technique par MP, svp
panda31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 10h48   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 23
Points : 10
Points : 10
Oui je viens de le modifier. Mon exemple était juste utile pour comprendre mon problème.

En gros je n'arrive pas à faire une Xpath correct tel que
Annexe[@Reference = cequejeveuxfiltrer]..

En tout merci d'avance
charliplanete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 21h24   #4
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 60
Points : 35
Points : 35
Met ca dans la requête de boucle : "//Annexe[@Reference='cequetuveux']/Detail/Donnee"

Et dans le xpath de ta colonne tu met simplement "."

Çadevrait marcher

Pour info en version 4.2 tu as le tXmlMap qui est plus facile d utilisation pour ce genre de manip...
Oreste est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/11/2011, 09h56   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 23
Points : 10
Points : 10
Merci pour l'info mais je ne dispose que de la version 4.1.2.
Mais je présume que je dois pouvoir ajouter le composant. Je vais regarder ça.
charliplanete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 15h28   #6
Membre du Club
 
Avatar de jnbarthas
 
Homme
Ingénieur développement logiciels
Inscription : août 2011
Messages : 49
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 49
Points : 64
Points : 64
Bon conseil de "Oreste", il faut simplement passer en version 4.2.x pour bénéficier du nouveau composant tXMLMap; pas possible de l'ajouter à une 4.1.

En 4.2, le flux XML peut être géré avec le nouveau type "Document" et l'exploration XML se fait directement au niveau du tXMLMap.

Bonne continuation.
jnbarthas est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h35.


 
 
 
 
Partenaires

Hébergement Web