Vous n'êtes pas identifié(e).
Bonjour à tous,
Je souhaite via une interface php/html/css modifier un fichier structuré comme un xml.
En fait il s'agit d'un projet réalisé avec le logiciel Apple Motion (un logiciel d'animation graphique).
Le fichier du projet a une extension .motn mais semble structuré comme un xml.
Le fichier est visible et téléchargeable à l'adresse suivante : meteo.motn (choisir l'encodage UTF8)
Je n'arrive malheureusement pas à réaliser la première étape : récupérer les informations que je souhaite : ici il s'agit de la valeur "contenu01" située entre 2 balises <text>. J'ai essayé d'ajouter un Id "370" afin d'y parvenir plus facilement ...toujours rien. (A noter cet Id ne figure pas dans le lien, j'ai préféré laisser le projet dans son état original).
voici le code PHP fonctionnel avec des xml simples mais pas avec celui que je souhaite !
$dom = new DOMDocument();
$dom->validateOnParse = true;
$dom->load('meteo.motn');
$dom->preserveWhiteSpace = false;
$temperature01 = $dom->getElementById("370");
echo $temperature01->nodeValue;
?>
Par avance merci.
Suivi des étapes:
- d'abord j'ai cherché à écrire un script en applescript avec la bibliothèque XMLLib.osax sans résultat avec ce fichier
- puis je suis passé à php simplexml et tentatives diverses avec DOM
- ce script fonctionne avec l'exemple suivant : http://stackoverflow.com/questions/3391 … d-problems
- tentatives sans DOCTYPE
- essais de décomposer le problème en étapes simples...le problème arrive lorsque j'utilise ce fichier xml apparement particulier
Dernière modification par cv21 (31-05-2014 21:44:18)
Hors ligne
...je réponds à mon post...étant toujours débutant en php depuis 10 ans j'ai pu contourner le problème.
J'abandonne les manipulations xml et m'appuie sur les commandes de manipulation de fichiers.
Le principe :
- ouvrir le fichier meteo.motn et le découper en petits bouts avec text edit (bloc note de mac) entre chaque variable par exemple les températures
- dans le script d'écriture du fichier inclure ces petits bouts et créer une chaine petitboutdebut+temperature01+petitbout01+temperature02+petitbout....etc..
Remarques de compatibilité avec l'application Apple Motion
- la chaîne de caractère constituant le contenu du fichier doit être encodée en UTF8
- le logiciel considère un retour à la ligne comme incorrect donc la structure doit être parfaitement respectée pour cela j'ai dû découper au retour à la ligne près le /n ne marche pas
base du script avec une seule valeur qui sera par la suite envoyée via un formulaire :
$temperature01='VALEUR01';//valeur à changer
$NewMeteo = $DebutXML.$temperature01.$FinXML; //concaténation de l'ensemble du contenu du fichier
unlink('meteo.motn');//petite sécurité
$monfichier = fopen('meteo.motn', 'w+');
//ouverture du fichier
//w+ Ouvre en lecture et écriture place le pointeur au début réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
fseek($monfichier, 0); // On remet le curseur au début du fichier
fputs($monfichier, utf8_encode($NewMeteo)); // On écrit le contenu en l'encodant en UTF8
fclose($monfichier);//fermeture du fichier
?>
Dernière modification par cv21 (01-06-2014 11:57:04)
Hors ligne