xpath et namespace

iznogoud
Invité n'ayant pas de compte PHPfrance

15 juin 2006, 10:56

bonjour la communauté

voila j'ai un probleme je souhaiterais utiliser xpath pour un manifest en xml comme ceci :

Code : Tout sélectionner

$doc_xml = new DomDocument(); $doc_xml->load('manifest.xml'); $xpath = new DomXpath($doc_xml); $noeuds = $xpath->query("/balise1/balise2/balise3/balise4");
mais voila dans la balise racine 'balise1' il y a des namespaces du genre xmlns="http://www......" ou xmlns:xsi="http://..." et je ne sais pas pkoi mais xpath bloque la dessus et je n'ai rien en retour de resultat par contre si je vire tous les namespaces du xml, la j'ai un retour et ca marche super.
que faut il faire?, j'ai cherché partout et je ne trouve rien sur ce probleme.
merci infiniment à celui ou celle qui m'apportera de l'aide.[/code]

Invité
Invité n'ayant pas de compte PHPfrance

22 juin 2006, 09:33

g trouvé la solution il faut d'abord utiliser la fonction registerNamespace

Code : Tout sélectionner

$xpath->registerNamespace('ns', 'url du namespace');
puis dans le xpath reporter l'abreviation que vous avez donné (ici 'ns') devant chaque balise du meme type de namespace

Code : Tout sélectionner

$noeuds = $xpath->query("/ns:balise1/ns:balise2/ns:balise3/ns:balise4");