Ecriture .xml (en php)

Fermé
BioHaZarD-34 - 12 févr. 2010 à 14:54
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 26 févr. 2010 à 17:43
Bonjour a tous,
J'ai un fichier .txt dans lequel il y a plusieurs millier de ligne (chaque ligne une urls)
et j'aimerai créer un .xml sitemap (en utilisant le php) avec ce genre d'ossature :

<?xml version="1.0" encoding="UTF-8" ?>
- <urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.sitemaps.org/schemas/sitemap/0.9/ https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
- <url>
<loc>url1</loc>
</url>
- <url>
<loc>url2</loc>
</url>
...
- <url>
<loc>urln</loc>
</url>
</urlset>

Quelqu'un pourrait-il m'aider car je ne connais la methode pour ecrire un .xml en recuperant les lignes de mon .txt
A voir également:

12 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
12 févr. 2010 à 18:11
<?php
header('Content-type: text/xml; charset=UTF-8');

$dom = new DOMDocument('1.0','utf-8');
$root = $dom->createElement('root');

$lignes = explode("\n", file_get_contents('fichier.txt'));
foreach($lignes as $url) {
	if(!empty($url)) {
		$urlNode = $dom->createElement('url');
		$locNode = $dom->createElement('loc',$url);
		$urlNode->appendChild($locNode);
		$root->appendChild($urlNode);
	}
}

$dom->appendChild($root);
echo $dom->saveXML();
?>
1
par rapport a ta reponse jme demander s'il y avait moyen de prendre calque sur une ossature?
Style : xmlns="https://www.google.com/schemas/sitemap/0.84/"
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504 > biohazard-34
24 févr. 2010 à 17:17
?
0
biohazard-34 > avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024
25 févr. 2010 à 09:03
Ben comme par exemple j'ai cité dans mon post :

<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.sitemaps.org/schemas/sitemap/0.9/ https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

[...]

Une ossature de type sitemap.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504 > biohazard-34
26 févr. 2010 à 17:43
<?php
header('Content-type: text/xml; charset=UTF-8');

$dom = new DOMDocument('1.0','utf-8');
$root = $dom->createElement('urlset');
$root->setAttribute('xmlns','http://www.sitemaps.org/schemas/sitemap/0.9');
$root->setAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
$root->setAttribute('xsi:schemaLocation','http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd');

$lignes = explode("\n", file_get_contents('fichier.txt'));
foreach($lignes as $url) {
	if(!empty($url)) {
		$urlNode = $dom->createElement('url');
		$locNode = $dom->createElement('loc',$url);
		$urlNode->appendChild($locNode);
		$root->appendChild($urlNode);
	}
}

$dom->appendChild($root);
echo $dom->saveXML();
?>
0
Ya personne ?
0
Merci pour ta réponse je vais tester immédiatement =)
0
J'ai cette erreur lors de l'execution :
<b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tried to allocate 117682198 bytes) in <b>W:\var\www\ecriture xml\index.php</b> on line <b>7</b><br />

line 7 : "$lignes = explode("\n", file_get_contents('sitemap.txt'));"

Est-ce un pb avec la fonction file_get_contents ou un fichier .txt trop volumineux (113 Mo) ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
24 févr. 2010 à 14:20
C'est le fichier qui dépasse la taille de traitement autorisée dans le php.ini
Regarde dans la doc ou la faq de ton hébergeur ou contactes-les.
0
Je travaille en local =)

Est-ce cette ligne qu'il faudrait que je modifie dans le php.ini :
" memory_limit = 128M; " ou pas?
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
24 févr. 2010 à 15:15
Oui
0
J'ai beau changer la valeur de cette ligne dans le php.ini et rien ... Toujours la même erreur :( :
"<b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tried to allocate 117682198 bytes) in <b>W:\var\www\ecriture xml\index.php</b> on line <b>7</b><br />"
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
24 févr. 2010 à 15:42
Qu'as-tu mis ? Essaye avec memory_limit = 256M;
0
J'ai essayer 64, 256, 512 et même 1024...
Sa change même pas l'erreur c'est toujours : "...Allowed memory size of 134217728 bytes exhausted (tried to allocate 117682198..."
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
24 févr. 2010 à 16:04
Est-ce que tu mets bien le "M" après le chiffre ?
0
Non je ne l'ai pas oublier... :s
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504 > biohazard-34
25 févr. 2010 à 17:21
Et avec ça donne quoi ?
0
biohazard-34 > avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024
26 févr. 2010 à 09:15
Ben en fait, pour les gros fichiers .txt, j'ai toujours un problème (memory_limit)
Mais sinon ta méthode fonctionne parfaitement, juste il me faudrait rajouter ces ligne en debut de .xml :

<?xml version="1.0" encoding="UTF-8" ?>
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.sitemaps.org/schemas/sitemap/0.9/ https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
0
Pour l'instant la taille du fichier n'est pas importante, j'ai donc essayer avec un fichier moins volumineux.
Mais en fait je voudrais faire en sorte d'avoir un fichiers .xml en sortie.
Je ne voit pas du tout comment faire...

help please...
0