IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM] Perdu dans le dom après passage de PHP4 à PHP5


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Par défaut [DOM] Perdu dans le dom après passage de PHP4 à PHP5
    Bonjour,
    Pour la gestion de mon site que je nommerais ici www.monsite.biz (bien sûr, ce n'est pas la véritable url), je dois créer un sitemap conforme aux normes du sitemap News de Google.
    J'ai réussi à créer les fichiers sitemap (par mois) et l'index sitemap contenant les url de ces fichiers mensuels.
    Je bloque actuellement sur la génération de cet index. Je dois d'abord lire ma base de données de façon à récupérer la date de la dernière news (ça je sais le faire). Ensuite lire le fichier xml correspondant au mois de cette news (ça aussi j'ai réussi à le faire). Etape suivante, lire la date de la dernière news:publication_date à partir de ce fichier (c'est là que je bloque).
    J'utilisais auparavant une classe (DomAdapter) mais depuis mon passage sur php5, je reçois une erreur sur ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $fichier=sprintf("sIte%04d-%02d.xml",$year,$month);
    if (file_exists($fichier))
    {
    	$xml = new DOMAdapter();
    	$doc = $xml->createDocument("urlset");
    	$doc->load($fichier);
    	$loca = $doc->documentElement->childNodes;
    	$nombre = $loca->length;
    	$dernier = $loca->item($nombre-1);
    	$val = $dernier->childNodes;
    	$data = $val->item(1);
    	$dateX = $data->nodeValue;
    }
    qui est censé lire un fichier xml sous cette forme.

    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
    <url>
    <loc>http://www.monsite.biz/2/2008-05-08/57184.html</loc>
    <news:news>
    <news:publication_date>2008-05-08</news:publication_date>
    </news:news>
    </url>
    <url>
    <loc>http://www.monsite.biz/2/2008-05-08/57185.html</loc>
    <news:news>
    <news:publication_date>2008-05-08</news:publication_date>
    </news:news>
    </url>
    <url>
    <loc>http://www.monsite.biz/2/2008-05-08/57186.html</loc>
    <news:news>
    <news:publication_date>2008-05-08</news:publication_date>
    </news:news>
    </url>
    <url>
    <loc>http://www.monsite.biz/2/2008-05-08/57187.html</loc>
    <news:news>
    <news:publication_date>2008-05-08</news:publication_date>
    </news:news>
    </url>
    </urlset>
    L'erreur est Fatal error: Call to a member function item() on a non-object in script.php on line 33

    Cette ligne contient $data = $val->item(1);

    Cette portion de script est censée lire le fichier et récupérer la date 2008-05-08 pour la vérification citée plus haut.

    Il faut savoir que ça fonctionne en local avec PHP Version 5.1.2, DOM/XML API Version 20031129, libxml Version 2.6.22 mais pas sur mon serveur hébergé avec PHP Version 5.2.5., DOM/XML API Version 20031129, libxml Version 2.6.32.
    J'ai cru comprendre qu'il s'agit d'un problème de version qui est incompatible avec cette classe.
    Je dois me résoudre alors à utiliser les fonctions DOM et pas cette classe mais je ne sais vraiment pas comment faire pour lire l'info dont j'ai besoin.

    Merci de votre patience et de votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Par défaut
    Bonjour,
    Entre temps, j'ai essayé de me documenter. Il y a tellement de méthodes (dom, domxml, simplexml...) pour lire un fichier xml en php que je me perds. A défaut de me guider précisément, quel serait votre choix sur la méthode à utiliser?
    Merci

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut
    Salut,
    Alors enfaite ton problème vient de l'utilisation des objets tout simplement. Je m'explique, tu utilises à l'origine un DomDocument, ensuite tu manipules des DomElement, DomNode .... Et les fonctions sont réparties entre tous ces objets. Je te conseil de regarder ce site :
    http://fr3.php.net/manual/fr/book.dom.php
    Dedans tu as tous les descriptifs des objets de DOM et toutes les fonctions associées.

Discussions similaires

  1. passage de php4 à php5 /windows/utf8
    Par lemra dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 26/08/2010, 00h33
  2. session perdu aprés passage de paypal
    Par jules_diedhiou dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2009, 14h35
  3. [POO] afficher un message d'erreur après passage dans une BD
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/04/2008, 16h04
  4. [DOM] Elements DOM et passage en argument
    Par Herode dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/06/2006, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo