J'essaie de convertir une chaîne XML en et array. SimpleXmlIterator n'accepte qu'un chemin d'accès à un fichier en tant que paramètre. Est-il possible de passer une chaîne à la place?Puis-je transmettre autre chose qu'un fichier à SimpleXmlIterator?
Répondre
Selon la documentation:
SimpleXMLIterator::__construct (string $data [, int $options [, bool $data_is_url [, string $ns [, bool $is_prefix ]]]])
par conséquent, cette charge une chaîne:
$it = new SimpleXMLIterator ($xml_string);
Cette charge un fichier:
$it = new SimpleXMLIterator ($xml_filename, 0, true);
Le ctor signature est
SimpleXMLIterator::__construct (
string $data [,
int $options [,
bool $data_is_url [,
string $ns [,
bool $is_prefix ]]]])
donc vous devriez être en mesure de passer à la fois: une chaîne et un fichier en changeant $data_is_url
:
Par défaut, data_is_url est FAUX. Utilisez TRUE pour spécifier que les données sont un chemin ou une URL vers un document XML au lieu de données de chaîne.
Voir aussi first user-contributed comment in the PHP Manual for SimpleXmlIterator
for an example how to turn XML into an array. L'exemple utilise un fichier, mais vous ne devriez avoir aucun problème pour l'adapter à vos besoins.
Où voyez-vous cela? SimpleXMLIterator
accepte une chaîne sous forme de données XML au constructor par défaut ... Vous pouvez passer un nom de fichier dans le premier paramètre en définissant le troisième paramètre à true
, mais par défaut false
...
Et asXml()
a une option $filename
paramètre, mais vous pouvez le laisser si tu veux et il va retourner une chaîne ...
ne peux pas croire que j'ai raté. Merci beaucoup. – Xerri