Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2008, 13h57   #1
Membre à l'essai
 
Avatar de Valter
 
Inscription : mars 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 109
Points : 22
Points : 22
Par défaut [DOM] Problème d'upload puis parsage fichier XML

Bonjour, je vous présente d'abord mes documents :

test.xml (le nom et contenu peuvent varier) :
Code XML :
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding ="ISO-8859-1" ?>
<article>
	<name>Name of the article</name>
	<author>Author</author>
	<web>Website</web>
	<speak></speak>
	<level></level>
	<desc>Description</desc>
	<table></table>
	<inside>Full article</inside>
</article>

Puis index.php :
Code PHP :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
if (isset($_POST['upload'])) {
	$lok = $_FILES['article'];
	$ext = strrchr($_FILES['article']['name'],'.');
	if ($ext != '.xml') { echo '<script type="text/javascript">alert("Sorry, the file you tried to upload isn\'t an .xml strict article."); document.location.href = "index.php";</script>'; }
	else {
		$name = "../system/".$_FILES['article']['name'];
		$file = fopen($name, "a+");
		$cont = file_get_contents($_FILES['article']['tmp_name']);
		fputs($file, $cont);
		fclose($file);
		$xml = new DomDocument();
		$xml->load($cont);
		$elements = $xml->getElementsByTagName('article');
		$element = $elements->item(0);
		$enfants = $element->childNodes;
		foreach($enfants as $fra) {
			$nam = $fra->nodeName;
			$num = $fra->nodeValue;
			switch ($nam) {
				case "name"; $title = $num; break;
				case "author"; $author = $num; break;
				case "web"; $web = $num; break;
				case "desc"; $desc = $num; break;
				case "inside"; $inside = $num; break;
			}
		}
	}
}
?>

Et ça me met :
Citation:
Warning: DOMDocument::load() [function.DOMDocument-load]: I/O warning : failed to load external entity "/mnt/140/sdc/f/4/0v5/create/<?xml version="1.0" encoding="ISO-8859-1" ?> <article> <name>Name of the article</name> <author>Author</author> <web>Website</web> <speak></speak> <level></level> <desc>Description</desc> <table></table> <inside>Full article</inside> </article>" in /mnt/140/sdc/f/4/0v5/create/index.php on line 36

Warning: Invalid argument supplied for foreach() in /mnt/140/sdc/f/4/0v5/create/index.php on line 40
La deuxième erreur dépend de la première, mais je ne sais pas comment la résoudre.

Merci d'avance,
Valter est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 14h07   #2
Membre émérite
 
Avatar de julien.63
 
Inscription : décembre 2005
Messages : 1 322
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1 322
Points : 981
Points : 981
Envoyer un message via MSN à julien.63
salut
il concatène l'adresse et le contenu de fichier.
Je pense que tu peux charger directement le document xml.
Code :
1
2
3
4
5
 
...
$xml = new DomDocument();
$xml->load($_FILES['article']['tmp_name']);
...
julien.63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 14h55   #3
Membre à l'essai
 
Avatar de Valter
 
Inscription : mars 2008
Messages : 109
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 109
Points : 22
Points : 22
Ah ouais, merci bien ^^
Je n'aurais jamais cru que la solution était si proche
Valter est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h26.


 
 
 
 
Partenaires

Hébergement Web