Bonjour,

Je cherche à faire une recherche, en php sur deux xpath différents.

Les communes se trouvent ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
/ead/archdesc/dsc////controlaccess/geogname
Les nom se trouvent ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
/ead/archdesc/dsc/c/c/controlaccess/persname
En php, je fait une recherche via :
avec la requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$xpath_geog = "//controlaccess/geogname";
$xpath_pers = "//controlaccess/persname";
$valeur_geog = "Paris";
$valeur_pers = "Toto";
$req = $req.= sprintf("//ead/archdesc/dsc//c[%s=\"%s\"]",{xpath_geog|xpath_pers},{valeur_geog|valeur_pers});
Ce qui donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
//ead/archdesc/dsc//c[controlaccess/geogname="Paris"] 
//ead/archdesc/dsc//c[controlaccess/persname="Toto"]
Pour les noms, ça fonctionne très bien. Mais pour les communes, je n'ai aucun résultat.

J'ai tenté d'ajouter des /// (1,2,3,..) mélangé à des "c" mais rien n'y fait.
Je n'arrive pas à un résultat correcte.
Sachant que j'aimerai ne pas changer la première partie du sprintf {sprintf("//ead/archdesc/dsc//c} car c'est commun à plusieurs autre code/clients, comment faire ?
Ou si je dois forcement changer la partie en dur, merci de me dire quel chemin dois-je mettre pour que les deux recherche fonctionne.
Je m'adapterai pour les autres clients en classe Extends.

D'avance merci à la communauté.