par
botwin » 31 juil. 2009, 00:55
Cool merci pour vos réponses.
Donc ok je comprend mieux maintenant pourquoi ça ne fonctionne pas...
Alors j'ai essayé get_object_vars() mais ça ne retourne rien...
J'ai aussi tenté le coup avec array_walk et cie puis avec (array) toujours rien...
C'est vraiment bizarre tout de même non ?
Avez-vous une idée de comment il faut procéder ?
Edit ---------------------
Bon j'ai un poil avancé, avec le code ci-dessous ça fonctionne bien mais uniquement si la requête XPath porte sur 1 seul niveau (//product).
Si la requête est de la forme (//product/name) ou si dans le fichier xml <product> n'a pas d'enfant et juste un texte ça foire...
Code : Tout sélectionner
function cleanxml($var) {
if (is_array($var)) {
return array_map('cleanxml', $var);
}
elseif (is_object($var)) {
return array_map('cleanxml', get_object_vars($var));
}
else {
return str_replace('[:amp:]', '&', $var);
}
}
$xml = simplexml_load_file(DBPRODUCTS);
$result = $xml->Xpath('//product');
print_r(cleanxml($result));
A votre avis ça vient d'où ? ya pas 36 solutions, le contenu de $var est soit array soit object soit string et devrait donc ressortir non ?
Re edit -------------------------
Hourra ! problême réglé !

Merci !
Cool merci pour vos réponses.
Donc ok je comprend mieux maintenant pourquoi ça ne fonctionne pas...
[i][size=75]Alors j'ai essayé get_object_vars() mais ça ne retourne rien...
J'ai aussi tenté le coup avec array_walk et cie puis avec (array) toujours rien...
C'est vraiment bizarre tout de même non ?
Avez-vous une idée de comment il faut procéder ?[/size][/i]
Edit ---------------------
Bon j'ai un poil avancé, avec le code ci-dessous ça fonctionne bien mais uniquement si la requête XPath porte sur 1 seul niveau (//product).
Si la requête est de la forme (//product/name) ou si dans le fichier xml <product> n'a pas d'enfant et juste un texte ça foire... :cry:
[code]
function cleanxml($var) {
if (is_array($var)) {
return array_map('cleanxml', $var);
}
elseif (is_object($var)) {
return array_map('cleanxml', get_object_vars($var));
}
else {
return str_replace('[:amp:]', '&', $var);
}
}
$xml = simplexml_load_file(DBPRODUCTS);
$result = $xml->Xpath('//product');
print_r(cleanxml($result));
[/code]
A votre avis ça vient d'où ? ya pas 36 solutions, le contenu de $var est soit array soit object soit string et devrait donc ressortir non ?
Re edit -------------------------
Hourra ! problême réglé ! :) :) :) Merci !