Allimenter un xml avec une boucle foreach
Résolu
hypo
-
hypo -
hypo -
Bonjour,
alors voilà mon probleme:
J'ai une chaine de caractere dans une variable $bloc:
string(152) "Type de conditionnement=>Détail;Type=>Stylos roller;Couleur=>Noir;Reliure=>Non;Type fermeture=>Capuchon;Encre=>Encre liquide;Pointe=>Pointe extra fine;"
et je dois la parsé pour la mettre dans du xml, pour obtenir ceci:
<Type de conditionnement>
Détail
</Type de conditionnement>
<Type>
Stylos
</Type>
etc ..
pour se faire j'utilise le code suivant:
Mais j'obtiens cette erreur:
Fatal error: Uncaught DOMException: Invalid Character Error in /var/www/html/api/lookup_metas.php:327 Stack trace: #0 /var/www/html/api/lookup_metas.php(327): DOMDocument->createElement('Type de conditi...', 'Detail') #1 /var/www/html/api/lookup_metas.php(416): metas_lookup() #2 {main} thrown in /var/www/html/api/lookup_metas.php on line 327
Comment puis-je régler celle-ci s'il vous plait ?
alors voilà mon probleme:
J'ai une chaine de caractere dans une variable $bloc:
string(152) "Type de conditionnement=>Détail;Type=>Stylos roller;Couleur=>Noir;Reliure=>Non;Type fermeture=>Capuchon;Encre=>Encre liquide;Pointe=>Pointe extra fine;"
et je dois la parsé pour la mettre dans du xml, pour obtenir ceci:
<Type de conditionnement>
Détail
</Type de conditionnement>
<Type>
Stylos
</Type>
etc ..
pour se faire j'utilise le code suivant:
$doc = new DOMDocument('1.0'); $eandata = $doc->createElement("eandata"); $doc->appendChild($eandata); $caracs_explode = explode( ';', $bloc); foreach ($caracs_explode as $val) { $single_carac = explode('=>', $val); $xml_carac = $doc->createElement($single_carac[0], $single_carac[1]); $eandata->appendChild($xml_carac); }
Mais j'obtiens cette erreur:
Fatal error: Uncaught DOMException: Invalid Character Error in /var/www/html/api/lookup_metas.php:327 Stack trace: #0 /var/www/html/api/lookup_metas.php(327): DOMDocument->createElement('Type de conditi...', 'Detail') #1 /var/www/html/api/lookup_metas.php(416): metas_lookup() #2 {main} thrown in /var/www/html/api/lookup_metas.php on line 327
Comment puis-je régler celle-ci s'il vous plait ?
A voir également:
- Allimenter un xml avec une boucle foreach
- Xml download - Télécharger - Édition & Programmation
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
- Boucle excel sans macro - Forum Excel
- Format office open xml ou opendocument - Forum Bureautique
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
ton message se produit sur la ligne 327, il est donc utile de nous préciser à quelle ligne de code cela correspond.
as-tu fait des essais avec d'autres données, pour voir ce qui provoquait l'erreur?
moi je commencerais avec
et puis me rapprocherais petit à petit des données finales, pour découvrir ce qui provoque cette erreur.
ton message se produit sur la ligne 327, il est donc utile de nous préciser à quelle ligne de code cela correspond.
as-tu fait des essais avec d'autres données, pour voir ce qui provoquait l'erreur?
moi je commencerais avec
"a=>b;c=>d;"
et puis me rapprocherais petit à petit des données finales, pour découvrir ce qui provoque cette erreur.
Bonjour,
Les Balises XML (comme le html....) n'autorisent pas, à ma connaissance, l'utilisation d'espaces..
Donc
retourne une erreur !
Remplace les espaces par des underscore
Et si tu as d'autres caractères comme les guillemets, les apostrophes, les slash.. pense à nettoyer la chaine...
Les Balises XML (comme le html....) n'autorisent pas, à ma connaissance, l'utilisation d'espaces..
Donc
<Type de conditionnement>
retourne une erreur !
Remplace les espaces par des underscore
<Type_de_conditionnement>
Et si tu as d'autres caractères comme les guillemets, les apostrophes, les slash.. pense à nettoyer la chaine...