xml recup contenu

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 : xml recup contenu

Re: xml recup contenu

par popof313 » 11 mars 2013, 11:37

Ok, merci a tous , j'aurai juste une derniere question.

Si je voudrai afficher que les champs ou plutot les attributs qui ont du contenue comment faire?
<?php
if($prop->labels->label==""){
echo "rien";
else
//ON AFFICHE
echo $....

MERCI

Re: xml recup contenu

par moogli » 08 mars 2013, 16:41

1/ virer les guillemets autour de la variable c'est inutile.
2/ oui c'est possible comme indiqué dans la doc de file_get_contents (le premier exemple en fait ...). mais ceci est conditionné au fait que php doit autoriser ce comportement url wrap open de mémoire).
Dans ton exemple tu oublie le http, obligatoire, en début d'url.


@+

Re: xml recup contenu

par popof313 » 08 mars 2013, 15:50

Salut merci pour ta réponse est ce que je peux utiliser une url dans 'fichier' exemple ci dessous:
$fichier="url.com/xml.php?id=1";
$sxml = new SimpleXMLElement(file_get_contents("$fichier"));
La je l'ai fait mais erreur...par le fichier et générer via une url pas dans le repertoire.

Merci beaucoup

Re: xml recup contenu

par moogli » 08 mars 2013, 00:30

ton xml est mal formé c'est moyen pour récupérer quelque chose.

Le xml complet est dans un champ de base de données ?

tu n'a pas besoin de générer un fichier tu peux passer une chaîne de caractère aux fonctions de simplexml ;)

par exemple pour un fichier
<?php
$sxml = new SimpleXMLElement(file_get_contents('popof.xml'));
foreach($sxml->property as $prop){
		echo 'name : ', $prop['name'],'<br />';
		echo 'label : ', $prop->labels->label,'<hr/>';
}
Si c'est une valeur issue d'une base de données remplace le file_get_contents par la valeur issue de la base.

Tu peux aussi utilise une requête xpath si tu veux http://php.net/manual/en/simplexmlelement.xpath.php

Des exemples avec simplexml : http://www.php.net/manual/fr/simplexml. ... -basic.php

@+

Re: xml recup contenu

par popof313 » 07 mars 2013, 18:41

en faite je souhaiterai juste recuperer le contenue qui est en xml dont le xml est stocker dans la base de donnée

donc je suis obligé de generer le xml en faisant exemple xml.php?id=xxx

cela m'affiche :
<properties>
<property name="activity">
<labels>
<label value="fr"/>
<label value="en"/>
</labels>
</property>
<property name="Telephone">
<labels>
<label value="fr">+33 608630241</label>
</labels>
</property>
<property name="Contact">
Mr toto
<labels>
<label value="fr"/>
</labels>
</property>
<property name="email">[email protected]
<labels>
<label value="fr"/>
</labels>
</property>
</properties>


et je voudrai juste l'afficher en contenue dans ma page l'email, le tel etc..

Re: xml recup contenu

par damien_55 » 07 mars 2013, 15:52

Hello,

simple_xml, c'est pas un script. C'est une fonction PHP

La doc http://php.net/manual/fr/function.simpl ... d-file.php

ta question n'est pas claire, peux tu reformuler stp.

Re: xml recup contenu

par popof313 » 07 mars 2013, 09:33

bonjour merci pour ta reponse..

par contre peut m'orienter comment utiliser cette classe
par apport au variable dont j'ai besoin pour les afficher?

du moins comment exploiter le script svp?

merci a vous svp.

Re: xml recup contenu

par moogli » 06 mars 2013, 11:27

Salut,

Utilise simplexml, c'est simple :D et ce sera plus clair a la lecture du code ;)


@+

xml recup contenu

par popof313 » 06 mars 2013, 01:44

Bonjour,

je n'arrive pas a afficher mon contenue xml qui est dans la bdd.
<?php 
// MA REQUETTE ICI 

//LE PARAM XML 
// Fonction parser n est pas de moi
function parser($fichier,$item,$champs) { 
   // on lit le fichier 
   if($chaine = @implode("",@file($fichier))) { 
      // on explode sur <item> 
      // Dans l'exemple il s'agit de 'profil' 
      $tmp = preg_split("/<\/?".$item.">/",$chaine); 
      // pour chaque <item> donc tous les profils 
      for($i=1;$i<sizeof($tmp)-1;$i+=2) 
         // on lit les champs demandés <champ> 
         foreach($champs as $champ) { 
            $tmp2 = preg_split("/<\/?".$champ.">/",$tmp[$i]); 
            // on ajoute l'élément au tableau 
            $tmp3[$i-1][] = @$tmp2[1]; 
         } 
      // et on retourne le tableau dans la fonction 
      return $tmp3; 
   } 
} 
  
$xml = parser("xml.php?id=$id","properties",array("Telephone","Contact")); 

foreach ($xml as $key => $row) { 
   $tel[$key]  = $row[0]; 
   $Contact[$key] = $row[1]; 

} 
// Tri par ordre d'arrivée AFFICHAGE XML sur html 
array_multisort($position, SORT_ASC, $xml); 
// Affichage des données ligne par ligne. 
foreach($xml as $row) { 
  echo " ".$row[0]." ".$row[1]."<br/>"; 
  } 

Le script xml et generer en php car le contenu xml est dans une bdd.
$xml =xml.php?id=$id_expo" (dans le parser ci dessous)

Le code xml est comme ci dessous :
<properties>
<property name="activity">
<labels>
<label value="fr"/>
<label value="en"/>
</labels>
</property>
<property name="Telephone">
<labels>
<label value="fr">+33 608630241</label>
</labels>
</property>
<property name="Contact">
Mr toto
<labels>
<label value="fr"/>
</labels>
</property>
<property name="email">[email protected]
<labels>
<label value="fr"/>
</labels>
</property>
</properties>

je souhaiterai seulement afficher le contenue telephone, contact, et mail.?
Si quelqu'un pourait eventuellement me mettre sur la piste ? mon serveur dispose php5.3