- 1
[Opened] module.xml et XPath
Posted by foxmask on 11/08/2008 21:59
Bonsoir,
qq1 sait comment on fait pour qu'XPath lise ceci
<module xmlns="http://jelix.org/ns/module/1.0">
comme si c'etait
<module>
?
ceci
$xml = simplexml_load_file('module.xml'); $result = $xml->xpath('/info/version'); return isset($result[0]) ? $result[0] : null;
ne fonctionne que si le namespace est absent du noeud module :(
comment faire ?
Merci de votre aide.
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: module.xml et XPath
Posted by foxmask on 11/08/2008 22:08
bon j'ai fini par trouver ;)
ouverture du fichier en tant que string
$xmlStr = file_get_contents('module.xml');
suppression du ns :P
$xmlStr=str_replace("xmlns=","a=",$xmlStr);
traitement du xml
$xml=simplexml_load_string($xmlStr); $result = $xml->xpath('/info/version'); return isset($result[0]) ? $result[0] : null;
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: module.xml et XPath
Posted by laurentj on 11/09/2008 09:23
arf, mais c'est super crade ce que tu fait :-) Voir même c'est une violation de la notation xml. Il ne faut JAMAIS faire ça. Et si il y a plusieurs balises du même nom mais d'un namespace différent dans ton document ? tu te retrouverais avec des résultats faux.
Cinq secondes de recherche dans la doc php : http://fr3.php.net/manual/fr/function.simplexml-element-registerXPathNamespace.php ;-)
M'enfin tu ferais mieux d'utiliser les fonctions DOM classiques http://fr3.php.net/manual/fr/class.domxpath.php
Parce qu'on peut pas dire que simplexml soit un modèle de stabilité et de cohérence, surtout que la doc n'indique pas que la fonction que tu utilise soit dans toutes les versions de PHP5.
- 1