8797 sujets

Développement web côté serveur, CMS

Marre du Xml récalcitrant...

Je ne sais pas depuis combien de jours j'essaie faire XML / PHP

Mais je n'ai que des erreurs...

j'était sous EasyPHP (Version 4) et donc je me suis dit que c'était parce que j'avais pas la 5 donc je ne saurais pas utiliser les quelque lib de XML etc

puis je passe a Wamp Mais là, idem, j'ai beau aller dans le php.ini et faire comme ceci :


;extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_w32api.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
;extension=php_yaz.dll
;extension=php_zip.dll


Il ne marche toujours pas (je l'ai redémarer depuis le temps Smiley ohwell )

J'ai essayé les fonctions dom de php 4 j'ai essayé les nouvelles classe de Php 5 , j'ai essayé les fonctions Xslt, Xpath...

Je fait quoi maintenant ?

Ma dernière erreure est la suivante :

a écrit :
Fatal error: Call to undefined method DOMXPath::evaluate() in c:\wamp\www\change_xml.php on line 42


J'imagine que c'est parce qu'il trouve pas la fonction evaluate... pourtant le code vien tout droit du manuel...

Si quelqu'un peut m'aiguiller, m'aider cela serait pas mal...

Merci d'avance
Tu peux peut être montrer un bout de code... parce que tout est activé par défaut dans le php.ini il me semble.

a écrit :
J'imagine que c'est parce qu'il trouve pas la fonction evaluate... pourtant le code vien tout droit du manuel...


le nom de certaines fonction à changé
Modifié par TriadPtale (05 May 2005 - 14:32)

<?php
$doc = new DOMDocument;
$doc->load('try.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('root')->item(0);
// notre requête est relative au noeud tbody
$query = 'count(article)';
$entries = $xpath->evaluate($query, $tbody);
echo "Il y a $entries livres anglais\n";				  
// c'est un bête copier coller et adapté a mon fichier XML
// comm il y avais une erreur je me suis pas cassé le c**
?> 


et le fichier XML si ca peut servir


<?xml version="1.0" encoding="iso-8859-1"?>
<root>
  <article>
    <pseudo>moi</pseudo>
	<titre>prout</titre>
	<image url="http://kidlogis.com/dib258/xinshy/images/creas/avatar/avat.jpg" />
	<texte>Some Text</texte>
  </article> 
  <article>
    <pseudo>Other</pseudo>
	<titre>ici</titre>
	<image url="http://kidlogis.com/dib258/xinshy/images/creas/avatar/avat.jpg" />
	<texte>Some other Text</texte>
  </article> 
  <article>
    <pseudo>mmmi</pseudo>
	<titre>essai</titre>
	<image url="http://kidlogis.com/dib258/xinshy/images/creas/avatar/avat.jpg" />
	<texte>Some different Text</texte>
  </article> 
</root>

c'est un fichier de test aussi pour essaye de faire des suppression /modif dans le fichier XML

et si il change des nom de fonction... il n'y a pas d'update ? Smiley eek
Esseye avec $xpath -> query au lieu de evaluate

D'après ce que j'ai compris, le nom des fonctions a été fixé pour php avant que la recommandation ne les fixe complètement.

Donc j'ai remarqué quelques différences entre mes bouquins et le reste. Le plus simple est de vérifier systématiquement sur php.net (l'annuaire des classes/fonctions/méthodes) Smiley smile
... hum

C'est un peu sur php.net que j'ai chopper le code... (fin c'est là que je continue mon apprentissage Smiley ohwell )
tu dois copier une série de dll indispensables de php4 dans ton dossier system et system 32 de windows

il s'agit de sablot.dll, expat.dll, inconv.dll qui se trouvent dans le dossier "dlls" de php4 dans le dossier de Wamp.

théoriquement, une fois que tu as copié ça et redémarré Wamp, il ne devrait aps causer de problème.
J'ai essayé ton query et ca marche en effet Smiley smile

Merci beaucoup...

Personne n'aurais une classe ou un petit code pour montrer comment modifier, ajouter et supprimer des balises dans un fichier XML

Parce que la doc n'est pas toujours accompagnée d'exemple et je ne comprend pas tout bien Smiley ohwell
TriadPtale a écrit :
Oui mais il parle de php5 qui ne nécessite rien de plus que ce qui est installé par défaut Smiley smile



ouais, mais comme tous les serveurs web sont majoritairement en php4, c'est bon de le faire en 4 aussi...
Mais, je trouve pas les dll que tu as cité Smiley ohwell

je les ai cherché dans tout Wamp...

et evidement j'aurais aimé faire tout ca en PHP4 mais si il faut que je prenne un server avec PHP5 tant pis je le ferais ...
si tu as installé l'extention php4 de wamp, tu dois avoir un dossier php4 dans le dossier de wamp, et il y a un dossier dlls avec ces fameuses dll dedans.
Je dois les mettres tous ? (tout les dll's ? dans system32 et system ?)

et lequel va dans quoi ? tout dans System32 et dans system ?

...


et je demande toujour si personne n'as un script pour modifier/supprimer/ajouter dans un fichier XML
non, juste les dlls que je t'ai dites...

car certaines buggent.

et en théorie, c'est seulement dans system, pas dans system32 (mais comme je doutais, j'ai copié dans les deux...)