Problème XML XLS php :/

Problème XML XLS php :/ - PHP - Programmation

Marsh Posté le 04-09-2003 à 10:39:18    

Bonjour j'ai un problème avec XML et PHP j'ai toujours cette erreur là:
"Warning: Sablotron error on line 1: XML parser error 4: not well-formed (invalid token) in d:\work\dev\php\php-object\tutoriaux\parsexml.php on line 6"
 
Et je ne trouve pas l'erreur :/
 
Voilà mon fichier php(extrait de la doc PHP) :

Code :
  1. <?php
  2. // Allocate a new XSLT processor
  3. $xh = xslt_create();
  4. // Process the document, returning the result into the $result variable
  5. $result = xslt_process($xh, "xml-file.xml", "xsl-file.xsl" );
  6. if ($result)
  7. {
  8.     print "<pre>\n";
  9.     print $result;
  10.     print "</pre>\n";
  11. }
  12. xslt_free($xh);
  13. ?>


 
Voilà mon fichier XML avec la DTD intégrée:

Code :
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!DOCTYPE article[
  3.   <!ELEMENT title   (#PCDATA)>
  4.   <!ELEMENT section (title?, para+)>
  5.   <!ELEMENT title   (#PCDATA)>
  6.   <!ELEMENT para    (#PCDATA)>
  7.   ]>
  8. <article>
  9.   <title>titre</title>
  10.   <section>
  11.     <title>titre de la section</title>
  12.     <para>blablablablablablablablablabal</para>
  13.   </section>
  14. </article>


 
Et mon fichier XSL:

Code :
  1. <xml version='1.0'?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
  3.    
  4.     <xsl:output method="html"/>
  5.     <xsl:template match="/">
  6.       <html>
  7.         <head><title><xsl:value-of select="title"/></title></head>
  8.         <body>
  9.           <xsl:apply-templates/>
  10.         </body>
  11.       </html>
  12.     </xsl:template>
  13.    
  14.     <xsl:template match="article/title">
  15.       <h1><xsl:value-of select="."/></h1>
  16.     </xsl:template>
  17.    
  18.     <xsl:template match="section">
  19.         <xsl:apply-templates/>
  20.     </xsl:template>
  21.        
  22.         <!-- Formatting for JUST section titles -->
  23.         <xsl:template match="section/title">
  24.           <h2><xsl:value-of select="."/></h2>
  25.         </xsl:template>
  26.    
  27.     <xsl:template match="para">
  28.       <P><xsl:apply-templates/></P>
  29.     </xsl:template>
  30. </xsl:stylesheet>


 
Je précise que le support d'XSLT est disponible sur mon serveur.
 
Voilà si jamais quelqu'un a une idée, je suis preneur ;)
 
Merci d'avance.
 
:)

Reply

Marsh Posté le 04-09-2003 à 10:39:18   

Reply

Marsh Posté le 04-09-2003 à 10:48:41    

a vu de nez je dirais que ton fichier xml est pas valide ...
T'as essayer de le valider sur http://www.w3schools.com/dom/dom_validate.asp ?

Reply

Marsh Posté le 04-09-2003 à 11:05:18    

C'est bizarre ça viendrait de mon type d'encondage pourtant l'UTF-8 c'est correct non ?
 
:)
 
Merci pour l'URL ;)
 
:)

Reply

Marsh Posté le 05-09-2003 à 08:20:40    

Salut tout le monde,
 
Juste une question Qwix, qu'as-tu installé comme serveur, sur quelle OS pour pouvoir parser du du XML avec du PHP. J'ai essayé plein de trucs, et j'ai jamais réussi...
Impossible de parser du PHP.  
 
Je te remercie d'avance de ta réponse  :jap:


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 05-09-2003 à 08:59:37    

Un très bon parser de XML en PHP :
http://minixml.psychogenic.com/

Reply

Marsh Posté le 05-09-2003 à 10:06:23    

Merci pour l'adresse...
Tu l'installes avec apache (1.3 ou 2) ou sur Easyphp? J'ai Windows Xp (Home en plus :( ) et je voudrais pouvoir faire fonctionner le parser xml. Qu'est-ce qu'il vaut mieux que j'installe ? A part un autre système d'exploitation...


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 05-09-2003 à 10:50:21    

sur easyphp tu dois pouvoir activer le support dom xml, voir la:
http://dev.nexen.net/docs/php/anno [...] lation.php

Reply

Marsh Posté le 09-09-2003 à 08:26:21    

Salut tout le monde,
 
Il faut que j'installe la librairie lib2xml dans le répertoire system32 de windows avec EasyPHP... Mais je n'arrive pas à trouver les fonctions qui permettent de lire, parser et d'écrire dans les fichiers xml. Quelqu'un aurait il la liste ?
 
Je galère dur pour vraiment pas grand chose... :jap:


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 09-09-2003 à 09:39:40    

Code :
  1. <xml version='1.0'?>


Le problème viendrait pas de là? (Il manque un ? avant le xml)

Reply

Marsh Posté le 15-09-2003 à 11:05:31    

Salut tout le monde,
 
Je ne sais plus quoi faire, j'ai besoin de parser du XML avec du XSL ou XSLT. Je suis sous Windows XP Home et que dois-je installer pour effectuer la transformation sous php. J'ai bien tenté d'installé easyphp, mais à chaque fois je n'arrive pas à parser, il ne connait pas xslt_create ou xslt_run.pourtant j'ai la librairie libxml 2.4.1 avec le domXML enabled.
 
Comment dois-je faire, j'ai chercher partout sur Internet pour ça. J'ai vu de la doc pour des extensions pour apache mais vu comme il faut les installer, c'est sous Linux.
 
Comment et que dois-je faire :pt1cable:  ?
 
Merci de votre aide :jap:


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 15-09-2003 à 11:05:31   

Reply

Marsh Posté le 15-09-2003 à 11:13:46    

il te faut un processeur xslt..
au choix Sablotron, domxml, Xsltproc ....
 
j'ai essayé sablotron et domxml. Le deuxième me semble beaucoup plus rapide  ;)  
 
une très bonne doc ici  :)  
http://www.neokraft.net/docs/xslt/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 15-09-2003 à 11:27:58    

Merci pour l'info, je vais voir... :jap:


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 15-09-2003 à 12:46:47    

La doc que tu m'as donné est essentiellement pour Linux. Comment fait-on pour installer les librairies des processeurs XSLT (domXML par exemple) sur Easyphp? Faut il seulement prendre phpini.exe et activer le domxml et xslt, mettre les librairies libxml et libxslt donc windows/system32?
 
Ou faut il faire autre chose ?


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed