David Naramski

Ingénieur Civil Informaticien

  • Increase font size
  • Default font size
  • Decrease font size
Blog

Conditional XPath 1.0

LiveCycle ES est une formidable machine à manipuler les données XML. L'intérêt d'utiliser un standard comme XPath pour accéder à certaines valeurs est évident.

Mais la sémantique très restreinte de XPath ne permet pas a priori d'exécuter des instructions conditionnelles.

Dans mon cas, je voulais simplement afficher quelque chose du genre

	Bonjour <titre>, 

où le <titre> serait remplacé par Monsieur ou Madame en fonction d'une condition. Si en Java on aurait simplement écrit

	"Bonjour " + ( condition ? "Monsieur" : "Madame" ) + ","

en XPath, une telle notation conditionnelle n'existe pas.

C'était sans compter sur l'astuce de certains qui on proposé la solution suivante.

Tout repose sur le fait qu'il existe une fonction number(<obj>) qui converti un <obj> en un nombre. Plus particulièrement, la valeur d'un booléen est 1 pour true et 0 pour false.

L'idée est d'alors utiliser substring() pour prendre tout ou rien de la chaîne de caractère en fonction de la condition. C'est-à-dire :

	substring("Monsieur", 1, string-length("Monsieur") * number(condition))

donne "Monsieur" si la condition est vrai et la chaîne vide sinon.

La solution à mon problème devenait alors :

	concat ( "Bonjour " , substring("Monsieur", 1, 8 * number(condition)) , substring("Madame", 1, 6 * number(!condition) , ",")

Pas très intuitif, mais ça a le mérite d'exister.

Last Updated on Tuesday, 09 March 2010 15:48
 

Vocabulaire

Last Updated on Tuesday, 09 March 2010 17:22
 

Grown your own fresh air

Comme j'ai quand même envie de vivre dans un environnement sain, j'ai trouvé cette présentation sympa.

Dans les maisons et les appartements, certains produits chimiques peuvent s'accumuler dans l'air. Ce qui peut parfois provoquer des environnements malsains (Sick Building Syndrome).

Sans en arriver là, un peu d'air sain ne fait pas de mal pour notre quotidien. La présentation qui suit est un retour d'expérience sur l'assainissement de l'air par des plantes. L'expérience s'est déroulée en Inde, mais les plantes utilisées sont disponibles pour tous.

Last Updated on Tuesday, 09 March 2010 15:55 Read more...