Liste avec fichier xml

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Liste avec fichier xml

Re: Liste avec fichier xml

par Typher007 » 03 avr. 2010, 09:11

C'est faisable, oui.

Le plus simple, à mon avis, c'est d'utiliser xPath :
<?php
// Variables
$fichier = 'test.xml';
$racine = '/posts/';

//Ouverture et récupération du XML
$dom = new DomDocument();
$dom->load($fichier);

// xPath
// Ici, la requête va retourner tous les fils de la racine
// Il y a moyen d'améliorer la requete pour filtrer et/ou choisir les noeuds
$xpath = new Domxpath($dom);
$result = $xpath->query($racine.'*');
foreach($result as $noeud) {
	echo $noeud->nodeValue.'<br />';
}
?>
Merci, je ne savais pas qu'on pouvais faire avec ça, bien utile le xPath !

Re: Liste avec fichier xml

par macgawel » 02 avr. 2010, 17:58

C'est faisable, oui.

Le plus simple, à mon avis, c'est d'utiliser xPath :
<?php
// Variables
$fichier = 'test.xml';
$racine = '/posts/';

//Ouverture et récupération du XML
$dom = new DomDocument();
$dom->load($fichier);

// xPath
// Ici, la requête va retourner tous les fils de la racine
// Il y a moyen d'améliorer la requete pour filtrer et/ou choisir les noeuds
$xpath = new Domxpath($dom);
$result = $xpath->query($racine.'*');
foreach($result as $noeud) {
	echo $noeud->nodeValue.'<br />';
}
?>

Re: Liste avec fichier xml

par Typher007 » 02 avr. 2010, 16:54

oui parce que la on a supprimer que le nœud id donc :
//item/id[text() = 4]/..
A merci super ! sa marche parfaitement !

Je crois que je vais embêter encore un peu mais est-ce que c'est possible de faire une liste des éléments ( en x/html ) contenu dans un xml ? j'ai regarder un petit peu mais je n'ai pas trouvé quelque chose qui me conviens

Juste une boucle avec mes différents titre par exemple pour que je puisse insérer une chexbox pour pouvoir supprimer celle cocher en fonction de l'id !

Enfin sa, sa serais l'idéal :D

Si on peux me mettre sur la voie !

Re: Liste avec fichier xml

par stealth35 » 02 avr. 2010, 15:46

oui parce que la on a supprimer que le nœud id donc :
//item/id[text() = 4]/..

Re: Liste avec fichier xml

par Typher007 » 02 avr. 2010, 11:34

Comme ceci ?
$query= $xpath->query('//item/id[text() = 4]')->item(0);

oui :wink:

J'obtiens cette erreur la au niveau de mon code :
Fatal error: Uncaught exception 'DOMException' with message 'Not Found Error' in ***\suppr_news.php:24 Stack trace: #0 ***\suppr_news.php(24): DOMNode->removeChild(Object(DOMElement)) #1 {main} thrown in***\suppr_news.php on line 24
Ligne 24 ( flèche ) :
$dom = new DomDocument();
$dom->load('../news.xml');
       
$xpath  = new DOMXPath($dom);
$query= $xpath->query('//item/id[text() = "4"]')->item(0); //si avec id
       
===> $dom->documentElement->removeChild($query); <===
       
echo $dom->saveXML();

Re: Liste avec fichier xml

par stealth35 » 02 avr. 2010, 00:40

Comme ceci ?
$query= $xpath->query('//item/id[text() = 4]')->item(0);

oui :wink:

Re: Liste avec fichier xml

par Typher007 » 02 avr. 2010, 00:26

Comme ceci ?
$query= $xpath->query('//item/id[text() = 4]')->item(0);

Re: Liste avec fichier xml

par stealth35 » 02 avr. 2010, 00:23

pour la suite l'expression serait

Code : Tout sélectionner

<items> <item> <id>4</id> <title>T 4</title> <description>D 4</description> </item> <item> <id>3</id> <title>T 3</title> <description>D 3</description> </item> </items>
//item/id[text() = 4]

Re: Liste avec fichier xml

par Typher007 » 01 avr. 2010, 15:34

pour supprimer physiquement utilise save
Merci beaucoup stealth c'est exactement ce que je rechercher !

Bonne journée à vous tous et merci encore.

Re: Liste avec fichier xml

par devlop78 » 01 avr. 2010, 14:46

Ouai en plus quand je crée de beau PNG les fonds transparents sont tout gris :evil: :twisted: :twisted:

Re: Liste avec fichier xml

par stealth35 » 01 avr. 2010, 14:45

IE6 c'est le mal :mrgreen:

Re: Liste avec fichier xml

par devlop78 » 01 avr. 2010, 14:41

OUai

$dom->getElementsByTagName('item')

Ca me fait penser à Javascript Loool ... qui utilise DOM aussi tu vas me dire. Mais ça c'est cool. Quand tout respecte les normes et fonctionne de la même manière, on a qqchose de cohérent ... Si seulement ça pouvait être le cas (reconnaissance du sélecteur ">" CSS par IE 6 par exemple, pour ne citer que ça :))

Re: Liste avec fichier xml

par stealth35 » 01 avr. 2010, 14:38

DomDocument c'est le bien :mrgreen: , (autant pour les XML que pour du HTML)

Re: Liste avec fichier xml

par devlop78 » 01 avr. 2010, 14:34

C'est drôle j'avais jamais entendu parler de domDocument. Cela dit je suis pas très XML puisque un jour j'ai fait une liste de département en XML, j'ai voulu utiliser une librairie php qui dénoue (lol) les noeuds etc pour faire une recherche Code postal -> ville, et ça mettait 3 plombes. En faisant un fichier avec un code postal séparé de la ville par un "|", j'ai fait un petit code php qui s'éxecutait 30 fois plus vite ... et si ça avait été Mysql ça aurait été aussi rapide ...

Pour en revenir, en fait tu traites ton fichier de la meme manière que javascript ... ??? Heureusement je vais avoir un module de 35h sur XML ^^

Re: Liste avec fichier xml

par stealth35 » 01 avr. 2010, 14:28

pour supprimer physiquement utilise save