[XPath] retourner le contenu d'un champ selon un frère etc

retourner le contenu d'un champ selon un frère etc [XPath] - XML/XSL - Programmation

Marsh Posté le 06-11-2007 à 11:06:00    

Yo

 

Donc voilà, je découvre XPath, jusque là ça a l'air bien, mais là je bloque, j'ai une arbo du type :

 
Code :
  1. <artists>
  2.  <artist>
  3.    <id type="finetunes">1124987819047_lyr</id>
  4.    <role>lyricist</role>
  5.    <name>Josh Homme,Nick Olivieri</name>
  6.  </artist>
  7.  <artist>
  8.    <id type="finetunes">1124987816982</id>
  9.    <role>performer</role>
  10.    <name>Northern Lite</name>
  11.    <website />
  12.  </artist>
  13.  <artist>
  14.    <id type="finetunes">1124987819047_comp</id>
  15.    <role>composer</role>
  16.    <name>Josh Homme,Nick Olivieri</name>
  17.  </artist>
  18. </artists>
 

=> Je voudrais retourner la liste des <artist> ayant pour valeur de l'enfant <role> la valeur "performer".
Ou alors, un peu pareil,
=> la liste du <name> de chaque <artist> ayant pour <role> la valeur "performer".

 

C'est possible ça [:petrus dei]


Message édité par theredled le 06-11-2007 à 11:07:01

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 06-11-2007 à 11:06:00   

Reply

Marsh Posté le 07-11-2007 à 11:09:34    

Nan bah c'est bon

Code :
  1. artists/artist[role='performer']/name


 
C'était franchement pas compliqué zetes trop nuls [:thalis]


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 07-11-2007 à 11:11:58    

Hein? C'est pas sensé renvoyé les noeuds name enfants des noeuds artist ayant le role 'performer' cette expression?
(je suis pas un jedi du xpath, donc patapé svp :))


Message édité par IrmatDen le 07-11-2007 à 11:12:10
Reply

Marsh Posté le 07-11-2007 à 11:49:18    

ben si, c'est ça qu'est cool [:le kneu]

 

edit : et pour le premier truc, ce serait juste artists/artist[role='performer']


Message édité par theredled le 07-11-2007 à 11:50:14

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 07-11-2007 à 11:57:21    

Aaahh, je crois que je viens de me rendre compte qu'il n'y a pas le '@' devant role :$
Je ne connaissais pas cette syntaxe pour poser des critères sur les noeuds fils, merci :)

Reply

Marsh Posté le 07-11-2007 à 12:25:11    

De rien :D
 
Du coup j'ai une autre question, à toi ou d'autres :
 
J'ai une arbo du type :

Code :
  1. <artist_name>Johan Ilves</artist_name>
  2. <file_under>Johan Ilves</file_under>
  3. <artist_review></artist_review>
  4. <artist_biography></artist_biography>
  5. <artist_type>band</artist_type>
  6. <artist_name>Sebastian Davidson</artist_name>
  7. <file_under>Sebastian Davidson</file_under>
  8. <artist_review></artist_review>
  9. <artist_biography></artist_biography>
  10. <artist_type>band</artist_type>
  11. <artist_name>Ricky Stone &#38; Lou Swimmin</artist_name>
  12. <file_under>Ricky Stone &#38; Lou Swimmin</file_under>
  13. <artist_review></artist_review>
  14. <artist_biography></artist_biography>
  15. <artist_type>band</artist_type>
  16. <artist_name>Kid Dub &#38; Liz Cirelli</artist_name>
  17. <file_under>Kid Dub &#38; Liz Cirelli</file_under>
  18. <artist_review></artist_review>
  19. <artist_biography></artist_biography>
  20. <artist_type>band</artist_type>


Je voudrais récupérer, pour un <artist_name> défini, tous les noeuds suivant, jusqu'au prochain <artist_name>.
 
Comment on fait ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 07-11-2007 à 12:37:40    

Ouais bon sinon je vais faire avec following-sibling::file_under[1], ça marche bien.
 
Un grand merci.


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed