Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2829 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Ajouter l'entete DTD dans un fichier XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajouter l'entete DTD dans un fichier XML

n°1232177
Loizo
Posté le 27-10-2005 à 10:43:22  profilanswer
 

Bonjour,
 
Je cherche a faire un truc tout con mais je n'y arrive pas ca me gave. J'ai des fichiers XML de ce type :
 

Code :
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <Trees>
  3.   <Tree>
  4.     <Name>Chélicérates</Name>
  5.     <Node>
  6.       <Node>
  7.         <Name>Mérostomes</Name>
  8.       </Node>
  9.       <Node>
  10.         <Name>Arachnides</Name>
  11.        </Node>
  12.        <Name>Chélicérates</Name>
  13.     </Node>
  14.   </Tree>
  15. </Trees>


 
Donc vraiment des fichiers de base... Et j'aimerai arriver a ca :
 

Code :
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE arbre SYSTEM 'arbre.dtd'>
  3. <Trees>
  4.   <Tree>
  5.     <Name>Chélicérates</Name>
  6.     <Node>
  7.       <Node>
  8.         <Name>Mérostomes</Name>
  9.       </Node>
  10.       <Node>
  11.         <Name>Arachnides</Name>
  12.        </Node>
  13.        <Name>Chélicérates</Name>
  14.     </Node>
  15.   </Tree>
  16. </Trees>


 
Donc j'ai fais un truc tout con avec des fichiers mais ca foire :
 

Code :
  1. $contenuFic=file_get_contents($fichierxml) or die ("Erreur file_get_contents" );
  2. echo "avant remplacement, contenuFic : $contenuFic<br/>";
  3. if(!str_replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>","<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE arbre SYSTEM 'arbre.dtd'>",$contenuFic))
  4.     echo "remplacement loupé contenuFic : $contenuFic<br/>";//<?
  5. else echo "remplacement effectué, contenuFic : $contenuFic<br/>";
  6. file_put_contents($fichierxml,$contenuFic) or die ("Erreur file_put_contents" );


 
Donc ici avant remplacement $contenuFic est ok ca m'a bien récuperé tous le fichier XML. Apres mon str_replace marche mais $contenuFic est de la meme valeur qu'avant le str_replace... Bon apres le write marche aussi mais bon vu que le str_replace a pas vraiment fonctionné :/
 
Apres j'ai essayé en essayant d'ajouter un noeud fils à l'entete du document XML via la librairie DOM. Mais je n'arrive pas a recuperer l'entete du document, si je vais a la racine ca va directement a la 1ere balise Tree...
 
Quelqu'un a une idée ? Merci :)

mood
Publicité
Posté le 27-10-2005 à 10:43:22  profilanswer
 

n°1232324
shakpana
des fois, j'me demande ...
Posté le 27-10-2005 à 12:33:14  profilanswer
 

str_replace : retourne la chaine (ou tableau) avec le contenu remplacé si ça a marché, sinon l'original, donc un !str_replace ne fonctionnera pas comme tu l'attends ...
 
et quand à DTD, DOM XML, XMLSchema, regardes ce thread.

n°1232430
Loizo
Posté le 27-10-2005 à 14:04:00  profilanswer
 

Ah ok ca n'a pas marché a priori mais ca renvoi qd meme qq chose...
Bon de tte facon vais surement laisser tomber la voie DTD et faire mes tests a la main, tant pis...

n°1232602
shakpana
des fois, j'me demande ...
Posté le 27-10-2005 à 15:39:04  profilanswer
 

Loizo a écrit :

Ah ok ca n'a pas marché a priori mais ca renvoi qd meme qq chose...

bah, oui, ça renvoi l'original ...
exemple :

Code :
  1. $strTest = str_replace('foo', 'bar', 'une phrase contenant des mots');
  2. echo $strTest; // => une phrase contenant des mots

-> RTFM :)
si ça n'a pas marché, c'est p.e. à cause de  
 
dans ton str_replace => "UTF-8"?>
dans ton xml => "UTF-8" ?>
 
mais c'est à priori, vu les que les antislashes d'echappement de HFR sont plus que moyens ...
ce serait cool de fixer çà, à l'occaz ...
[:acherpy]


Message édité par shakpana le 27-10-2005 à 15:39:35

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Ajouter l'entete DTD dans un fichier XML

 

Sujets relatifs
Copie contenu d'un repertoire en fichier batchUtilisation de fichier *.hta
Modifier la nième ligne d'un fichier texte[ PHP ][ Resolu ] Upload et verification d'un fichier binaire
[DTD]Indiquer que 2 noeuds ne peuvent avoir le meme nomLancer un fichier xls a partir de VB6
Fichier audioAller à la derniere ligne d'un fichier texte et recherche chaine
VBA Excel UserForm bouton pour ouvrir fichier *.hlp & path dynamique[ORACLE] Ajouter ON DELETE CASCADE
Plus de sujets relatifs à : Ajouter l'entete DTD dans un fichier XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR