xpath : aide pour une query .. ?

xpath : aide pour une query .. ? - XML/XSL - Programmation

Marsh Posté le 01-04-2005 à 17:08:27    

Hello,
 
Je me demandais si en XPath, je pouvais écrire ça

/properties/property[@name='foo']/@value


 
... pour que ça me renvoie la valeur de l'attribut value de l'element property dont l'attribut name vaut 'foo' (ce que ça fait là) OU le contenu de cet element si l'attribut value n'est pas défini (ce que ça fait si je vire le "/@value"?
 
Je pensais à un truc du genre, mais ça ça me renvoie tjs le contenu de l'élement property (merci alien_nan pour l'explication d'ailleurs, je faisais un peu ça au hasard...)

/properties/property[@name='foo'][./@value or .]


 
Qqun à qqchose à proposer en une seule query?
(Si c'est pour faire un if/else, merci ça ira [:icon12])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-04-2005 à 17:08:27   

Reply

Marsh Posté le 01-04-2005 à 18:15:36    

Peut etre le debut du commencement de l'ombre d'une reponse vite fait avant que je me casse du bureau.
Si tu fait une condition  OU en incluant ancestor ou child

Reply

Marsh Posté le 01-04-2005 à 19:06:59    

euh j'ai vaguement essayé, mais trop capté comment l'écrire :/ chuis une buse en xpath, et bon, j'ai pas non plus des heures à passer là dessus je l'avoue :whistle:  
 
si je trouve une réponse, ça sera du bonus [:joce]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-04-2005 à 23:31:09    

properties/property[@name='foo']/@value | properties/property[@name='foo' and not(@value)]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 02-04-2005 à 21:16:02    

j'essaie ça lundi merci [:joce]
 
 
et la question subsidiaire, y'a qqchose dans les api pour changer la valeur d'un element en donnant l'xpath vers cet element?
et la question bonus magique, si on a répondu oui à la précédente: est-ce que l'xpath donné par benou va aussi marcher dans ce cas, c-a-d en modifiant soit l'attribut soit le contenu de l'element selon les cas? :whistle:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 04-04-2005 à 16:38:47    

merci benou ça marche :bounce:
 
.. une idée pour le reste? :whistle:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 04-04-2005 à 17:09:15    

Ben ensuite ca depend dans quelle API.Tu es sous quel language ? Normalement tu dois pouvoir changer les valeur des element une fois trouvé, mais il me semble qu'il faut passer par une sauvegarde du document xml si tu ne l'utilise pas de suite.

Reply

Marsh Posté le 04-04-2005 à 17:10:38    

ça marche [:__canard__]
gedeon >> java
 

Code :
  1. XPATH_FORMAT = "properties/property[@name='%1$s']/@value | properties/property[@name='%1$s' and not(@value)]";
  2. [...]
  3. String xpathQuery = String.format(XPATH_FORMAT, propertyName);
  4. Node node = (Node) xpath.evaluate(xpathQuery, doc, XPathConstants.NODE);
  5. node.setTextContent(value);


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Sujets relatifs:

Leave a Replay

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