Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche 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 06/07/2006, 14h49   #1
Membre éprouvé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2003
Messages : 910
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2003
Messages : 910
Points : 407
Points : 407
Par défaut [SimpleXML] Utilisation de SimpleXML ?

Bonjour à tous,

j'ai posté dans le forum XML, mais n'ayant pas de réponses et suite à un conseil d'un des responsables XML (ou du responsable), voici mon post :

je n'ai pas trouvé d'aide sur le net à part :
http://www.php.net/manual/fr/ref.simplexml.php

Pourriez-vous me dire :

- s'il est possible de créer un fichier XML à partir d'un WXS (W3C XML
Schema) ? Mon script "consulterait" mon WXS, cela me permettrait de
"générer" un formulaire qui se mettrait à jour malgré la modification d'un
élément de mon WXS. Cela me permettrait par exemple de générer
automatiquement des listes déroulantes à partir de mes listes de choix
(exemple : M. ou Mme ou Mlle) ;

- comment est-il possible de modifier un fichier XML existant ? Voici un
extrait de mon code, mais il ne veut pas modifier mon fichier XML, alors que
la fonction "asXML()" renvoit bien "true" ??? Donc mon script "pense" que le
fichier XML a bien été modifié, alors que ce n'est absolument pas le cas !

Code :
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
session_start();
 
if ((!empty($_POST['nom'])) && (!empty($_POST['prenom'])) &&
(!empty($_POST['date_naiss'])) && (!empty($_POST['lieu_naiss'])) &&
(!empty($_POST['depart'])) && (!empty($_POST['nation'])) &&
(!empty($_POST['statut'])) && (!empty($_POST['numero'])) &&
(!empty($_POST['voie'])) && (!empty($_POST['cp'])) &&
(!empty($_POST['ville'])) && (!empty($_POST['pays'])) &&
(!empty($_POST['tel'])) && (!empty($_POST['port'])) &&
(!empty($_POST['fax'])) && (!empty($_POST['courriel']))) {
 
    function supprAccents($chaine) {
 
return(strtr($chaine,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn"));
    }
 
    $fic = "id_".$_SESSION['num'].".xml";
 
    if (file_exists($fic)) {
        $xml = simplexml_load_file($fic);
    }
    else {
        echo "Impossible d'ouvrir ce fichier XML.";
    }
 
    $xml->PROFIL->IDENTITE->CIVILITE = utf8_encode($_POST['civilite']);
    $xml->PROFIL->IDENTITE->NOM = utf8_encode(strtoupper($_POST['nom']));
    $xml->PROFIL->IDENTITE->PRENOM = utf8_encode(ucfirst($_POST['prenom']));
    $xml->PROFIL->COORDONNEES->COURRIEL =
utf8_encode(strtolower(supprAccents($_POST['courriel'])));
 
    $xml->PROFIL->PRESENTATION = utf8_encode($xml->PROFIL->PRESENTATION);
 
    for($i=0 ; $i<4 ; $i++) {
        $xml->CV->INFOS_DIVERSES->DIVERS[$i] =
utf8_encode($xml->CV->INFOS_DIVERSES->DIVERS);
    }
 
    $ok = $xml->asXML();
 
// if (($xml->asXML($fic)))
    if ($ok == false)
        {
        echo "
            <script language=\"JavaScript\">
                window.alert(\"Une erreur est survenue lors de la
modification, merci de recommencer.\");
                history.go(-1);
            </script>
        ";
        }
    else {
        echo "
            <script language=\"JavaScript\">
                window.alert(\"Modification du CV effectuée.\");
            history.go(-1);
            </script>
        ";
    }
}
else {
    echo "
        <script language=\"JavaScript\">
            window.alert(\"Attention, vous devez remplir tous les champs.\");
            history.go(-1);
        </script>
    ";
}
?>

EDIT : J'ai bien vu le tutoriel, mais il est trop succint pour ce que je souhaite faire.


Merci d'avance,
Gôm.
__________________
Quand on n'a pas d'tête, on a ...
ghohm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 17h40   #2
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
hello

pour ce que tu veut faire, il faut que tu utilise le SDO (tu a de la chance une versio stable est dispo 1.02) , tu pourra creé/modifié un fichier xml a partir d'un xsd,
mais pour beneficier de cette extension il faut que tu ai la main sur le serveur, car a mon avis aucun hebergeur ne le fournie ou quasiment.

pour les testes utilise l'operateur
Citation:
===
et tente des dump, pour voir si tes valeur sont bien setter
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 19h24   #3
Membre éprouvé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2003
Messages : 910
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2003
Messages : 910
Points : 407
Points : 407
Je n'ai malheureusement pas le choix, je dois rester chez Free, donc chez un hébergeur gratuit ... donc pas d'accès aux serveurs !

Bon, tant pis pour ma question ...

Est-il possible de me dire comment faire fonctionner mon script, sans la contrainte de "compatibilité automatique" avec le XML-Schema ?

La compatibilité entre le XML et sa grammaire sera faite à la main !

Mais merci pour cette piste.
__________________
Quand on n'a pas d'tête, on a ...
ghohm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h36.


 
 
 
 
Partenaires

Hébergement Web