Php xml et xslt

Fermé
stefanie_u2 Messages postés 34 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 11 juillet 2022 - 8 avril 2011 à 00:28
stefanie_u2 Messages postés 34 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 11 juillet 2022 - 17 avril 2011 à 00:51
Bonjour,

Besoin d'aide, je réalise un agenda électronique
Les données sont rangées sous format xml de manière à
Pouvoir effectuer les opérations tel que : modification,
Interrogation, recherche....
L'affichage est en xslt et le stockage avec php

Classes

Contact (Nom_Prenom, Sexe, Civilité, Tel)
Agenda (N°rdv, date, heure)

J ai téléchargé le manuel php,
Mais cela n est pas évident comment utiliser le Dom.

Voila une classe.

<?php

$mon_contact= new Contact('','');
$mon_contact->affiche();

class Contact{

private $Nom_Prenom;
private $Sexe;

public function __construct($Nom_Prenom ,$Sexe){
$this->Nom_Prenom = $Nom_Prenom;
$this->Sexe = $Sexe;
}

public function Nom_Prenom(){
return $this->Nom_Prenom ;
}
public function Sexe(){
return $this->Sexe ;
}

function affiche(){
//echo 'Il s\'agit de quelle personne ' ;
//echo $this->Nom_Prenom, '<br>';
//echo 'Le modèle est ', $this->modele, '<br>';
//echo 'Le sexe est ', $this->Sexe, '<br>';

}
}
?>

<?php
$doc = new DOMDocument('1.0', 'iso-8859-1');
$carnet = $doc->createElement( "carnet" );
$personne = $doc->createElement( "personne" );
$personne->setAttribute( "id", "2" );
$personne->setAttribute( "nom", "fogg" );
$personne->setAttribute( "prenom", "phileas" );
$carnet->appendChild( $personne );
$doc->appendChild( $carnet );
$doc->save( "test2.xml" );
?>


merci, au moins la partie enregistrement(stockage) et le reste je pense pouvoir suivre la demarche.

merci encore.










A voir également:

6 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
12 avril 2011 à 17:23
Bonjour,

Je pense que Gremy87 n'a pas bien saisi l'utilisation de DOM dans ce script.
Ce n'est pas du tout côté client, c'est bel et bien utilisé côté serveur. Le DOM est certes une norme utilisée par les navigateurs pour la représentation des données XHTML reçues, mais c'est avant tout une norme générale à la représentation de tout document XML, dont le XHTML n'est qu'un cas particulier.

Donc, contrairement à ce qu'il te dit, ne t'embête pas avec du javascript.

Voici ce que je te propose :
<?php

class Contact{

  private $Nom_Prenom;
  private $Sexe;

  public function __construct($Nom_Prenom ,$Sexe){
    $this->Nom_Prenom = $Nom_Prenom;
    $this->Sexe = $Sexe;
  }

  public function Nom_Prenom(){
    return $this->Nom_Prenom ;
  }
  public function Sexe(){
    return $this->Sexe ;
  }

  function affiche(){
    //echo 'Il s\'agit de quelle personne ' ;
    //echo $this->Nom_Prenom, '<br>';
    //echo 'Le modèle est ', $this->modele, '<br>';
    //echo 'Le sexe est ', $this->Sexe, '<br>';
  }
}

// Les opérations relatives à l'annuaire entier se passent dans cette classe Annuaire
class Annuaire{

  // La liste des contacts (un tableau instancié par le constructeur)
  private $Contacts;

  public function __construct(){
    $this->Contacts = new Array();
  }

  public function sauvegarder($nomFichier){
    // Création du document DOM
    $doc = new DOMDocument('1.0', 'iso-8859-1');
    $carnet = $doc->createElement( "carnet" );

    // Boucle sur chacun des contacts
    foreach($this->Contacts as $unContact){
      $personne = $doc->createElement( "personne" );
      $personne->setAttribute( "nom_prenom", $unContact->Nom_Prenom() );
      $personne->setAttribute( "sexe", $unContact->Sexe() );
      $carnet->appendChild( $personne );
    }

    // Clôture et sauvegarde du document DOM
    $doc->appendChild( $carnet );
    $doc->save( $nomFichier );
  }

  // Cette fonction ajoute un contact à la liste (à utiliser au chargement, ainsi
  // qu'à l'ajout d'un nouveau contact)
  public function ajouteContact($unContact){
    $this->Contacts[] = $unContact;
  }

  public function charger($nomFichier){
    // À toi de jouer :)
  }
}
?>


Pour faire un essai, tu peux rajouter en dessous ce code :
<?php
  $unAnnuaire = new Annuaire();
  $mon_contact= new Contact('Jean Bon','Homme');
  $unAnnuaire->ajouteContact($mon_contact);
  $unAnnuaire->sauvegarder("textAnnuaire.xml");
?>

Ça devrait te créer un fichier textAnnuaire.xml qui contient grosso-modo ceci :
<carnet>
  <personne nom_prenom="Jean Bon" sexe="Homme" />
</carnet>


Voilà !

Bon courage pour la suite.

Xavier
1
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
8 avril 2011 à 09:37
Bonjour,

oula attend, dis nous au moins ce qui ne va pas^^

qu'est ce qui ne marche pas? ton code m'as l'air correct à première vue.

0
bonjour,

lol, merci Gremy87
effectivement le code est bon, mais mon soucis est tout autre je souhaite ecrire avec le DOM, et récupérer du fichier xml , comment ???

comment meler du php et Dom ???
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 16:43
Bonjour,

c'est assez simple, tu ne peux pas^^

le DOM est la structure de ton document pour ton navigateur, coté client, donc trop tard pour du php

il te faut du JS.

récupérer du xml en php, tu as l'air de savoir déjà le faire
0

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

Posez votre question
stefanie_u2 Messages postés 34 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 11 juillet 2022
13 avril 2011 à 15:06
bonjour,

c 'est exactement le résultat un fichier XML avec phpDom, merci bcp 'Reivax962' de votre aide .
tout au long du développement du mini projet j aviserai en cas de couac...
merci encore a vous, 'Reivax962', 'Gremy87'.
0
stefanie_u2 Messages postés 34 Date d'inscription lundi 11 août 2008 Statut Membre Dernière intervention 11 juillet 2022
Modifié par stefanie_u2 le 17/04/2011 à 00:53
bonjour ,

puis je avoir de l aide je vous prie.
je souhaite récupérer les valeurs des champs d' un formulaire avec phpdom et faire un submit pour écrire sur un fichier xml plutot que d'écrire en dur.

exemple:

sexe : <input type="radio" name="T" value="Masculin" />
Nom_Prenom : <input type="text" name="Nom_Prenom" value="" size=30>


en java (équivalent en php)

jLabel1.setText("Cnss");

jLabel2.setText("Nom");

jLabel3.setText("Salaire");

jLabel4.setText("Lieu");

jAjouter.setText("Ajouter");


Personne p=new Personne(Integer.parseInt(jTextCnss.getText()), jTextNom.getText(), Double.parseDouble(jTextSalaire.getText()), Integer.parseInt(jTextLieu.getText()));
p.Ajouter();

!!!!! referez vous au code en haut de 'Reivax962 'avec le Dom, merci.
0