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 XML] Ouverture de fichier qui merde


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut [DOM XML] Ouverture de fichier qui merde
    Bonjour,

    j'ai un code qui marche en local mais pas sur mon serveur et je trouve pas l'erreur......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //Récuperer le catalogue xml
    foreach($TlesCatas as $monCata)
    {
    	//Ouvrir le fichier
    	$monXml = dirname(__FILE__)."/catalogues/".$monCata;
    	$dom = domxml_open_file($monXml, DOMXML_LOAD_DONT_KEEP_BLANKS);
     
    	$xpath = $dom->xpath_new_context();
    	$noeud = $xpath->xpath_eval("//page");
    	$indicePage = 1;
    	foreach($noeud->nodeset as $unePage)
    	{		
    		$enfantTexte = $unePage->first_child();		
    		if($enfantTexte->type == 1 && $enfantTexte->tagname == "stage")
    		{
    			$texteStage = $enfantTexte->get_content();
    			list($reference, $titre) = split(" : ",$texteStage);			
    			array_push($Tref, $reference);												
    		}
     
    		$indicePage++;
    	}
     
    	//Libérer le parseur XML
    	$dom->free();
    }
    si j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dom = new DomDocument('1.0', 'UTF-8');//UTF-8//iso-8859-1
    $dom->load("catalogues/ATCHOUM_25-4-2008.xml");
    le problème est détourné sur
    $xpath = $dom->xpath_new_context();

  2. #2
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut
    Le problème provient de mon serveur, dans les fichiers log concernant les erreurs, il marque undefined fonction domxml_open_file()

    J'ai mis les droit d'acces au dossier et fichiers php et xml : (757)

    La configuration de mon serveur dédié chez Amen :
    Version de PHP : 5.2.4;

    dom
    DOM/XML : enabled
    DOM/XML API Version : 20031129
    libxml Version : 2.6.29
    HTML Support : enabled
    XPath Support : enabled
    XPointer Support : enabled
    Schema Support : enabled
    RelaxNG Support : enabled

    libxml
    libXML support : active
    libXML Version : 2.6.29
    libXML streams : enabled

    xml
    XML Support : active
    XML Namespace Support : active
    libxml2 Version : 2.6.29
    Je développe sous easyphp1.8 ca marche nickel.
    Je précise que j'utilise la classe domxml de php4

    Je viens de faire un autre test, grace à ce code qui affiche toutes les méthodes d'une extension php comme gd ou doxml, ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<pre>";
    print_r(get_extension_funcs ("domxml")); 
    echo "</pre>";
    donc en local il affiche les méthodes en ligne non il ne connait donc pas cette classe... De plus, ils n'ont pas désactiver ce bout de code car avec 'gd' ca marche.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    L'extension DOM des versions 5 a remplacé DOMXML, des versions 4. Et elles n'ont plus rien en commun !

    Citation Envoyé par D4rK_C0uaK6
    Je précise que j'utilise la classe domxml de php4
    C'est à dire ?

  4. #4
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut
    D'accord il n'y a pas moyen d'ajouter la classe domxml sur un serveur en php5 ?
    je suis donc obliger de tout réécrire en dom ou simpleXML ?

    pourtant quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<pre>";
    print_r(get_extension_funcs("dom")); 
    echo "</pre>";
    il ne m'affiche pas les méthodes associées à cette classe sauf "dom_import_simplexml". Je vais donc essayer de faire une installation de package.

    Dom est si différent de domxml en syntaxe ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par D4rK_C0uaK6
    D'accord il n'y a pas moyen d'ajouter la classe domxml sur un serveur en php5 ?
    Oui, c'est une extension PECL pour PHP 5 (mais je n'ai jamais essayé et semble avoir été en partie supprimée).

    Citation Envoyé par D4rK_C0uaK6
    je suis donc obliger de tout réécrire en dom ou simpleXML ?
    ^^ non et il doit probablement exister des classes PHP pour retrouver une "interface" similaire (par exemple : http://alexandre.alapetite.net/doc-a...xml-php4-php5/).

    Citation Envoyé par D4rK_C0uaK6
    pourtant quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<pre>";
    print_r(get_extension_funcs("dom")); 
    echo "</pre>";
    il ne m'affiche pas les méthodes associées à cette classe sauf "dom_import_simplexml".
    Oui : toute l'extension est orientée objet, c'est la (ou une du moins) des seules fonctions disponibles (cette fonction ne fait pas apparaître les méthodes).

    Citation Envoyé par D4rK_C0uaK6
    Dom est si différent de domxml en syntaxe ?
    Ben, oui, elle a été entièrement réécrite/repensée sans aucune compatibilité ascendante, donc.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/02/2008, 21h20
  2. [DOM] [XSL] Convertir un fichier XML vers un fichier CSS
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 23/03/2007, 10h49
  3. [DOM] Php5 : créer un fichier xml avec Dom
    Par devadh dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/01/2007, 14h04
  4. JAXB XML: Marchalling vers fichier plus rapide qu'en mémoire(DOM)? Pourquoi?
    Par clincks dans le forum Persistance des données
    Réponses: 2
    Dernier message: 12/07/2006, 07h48
  5. [DOM] Erreur d'ouverture de fichier XML
    Par Arnard dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 03/05/2006, 10h38

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