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

XQUERY/SGBD XML Discussion :

problème de class


Sujet :

XQUERY/SGBD XML

  1. #1
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut problème de class
    Bonjour à tous,

    Je viens vous présenter un problème auquel malheureusement je n'entend rien ; alors si il était mal placé ne vous gêner pas pour le déplacer.
    Voici:
    J'ai un site décliné sur un serveur de développement et de production; la première version est bien sûr plus avancée. Lors d'une mise à jour en production d'un petit correctif, je me suis aperçu qu'une classe ne fonctionnait pas du tout de la même façon en dev et prod (configuré à l'identique).
    Sur les deux j'utilise ce bout de code pour afficher des transcriptions tei (xml) et cela fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $xq = new xqueryBP();
    		$fragment = $xq->getFragmentSelonSaCoteEtSonNumero($ref_bib_doc, $ref_bib_num_frag);
    		if ($fragment=='') {
    			$fragment='<record><fragment></fragment></record>';
    			$affichage_possible=false;
    		}
    		$xml=new DOMDocument();
    		$xml->loadXML('<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="'.PATH_APPLICATION.'/affichage_fragment.xsl"?>'.$fragment);
    		$xsl=new DOMDocument();
    		$xsl->load(PATH_APPLICATION.'/affichage_fragment.xsl', LIBXML_NOCDATA);
    		$proc = new XSLTProcessor();
    		$proc->importStylesheet($xsl);	
    		unset($xq);
    Sur celle en dev j'avais rajouté dans une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //	recup du numero de fragment dans la transcription
    		$xq = new xqueryBP();
    		$fragment = $xq->getNumeroDeFragment($row['cote'], $row['ID']);
    		if ($fragment=='') {
    			$fragment='<fragment></fragment>';
    		}
    		$dom = new DOMDocument;
    		$dom->loadXML($fragment);
    		$xPath = new DOMXPath($dom);
    		$no_frag = $xPath->query('/fragment/id_fragment')->item(0)->nodeValue;
    		if ($no_frag=='') {
    			$no_frag=1;
    		}
    		unset($xq);
    Cela fonctionne en dev mais pas en prod.
    Voici ma classe xqueryBP :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    //	fichiers inclus
    require_once('../classes/exist_phpapi.inc');
     
     
    Class xqueryBP {
     
    	/**
    	 * @var ressource
    	 */
    	public $db;
     
     
    	/**
    	 * Constructeur vide
    	 *
    	 */
    	function __construct() {
     
    		//	création d'une instance EXIST
    		$db2 = new eXist (EXIST_PATH,EXIST_SERVER,EXIST_PORT);
    		$db2->setCredentials (EXIST_USER,EXIST_PASSWORD);
    		$db2->setParamIndent (false);
    		//$db2->setDebug(DEBUG);
     
    		$this->db=$db2;
     
    	}
    ...
    /**
    	 * Permet de recuperer le numéro de fragment dans la TEI
    	 *
    	 * @param 	string		$id_bibl		id de la ref biblio (mise en forme: "b{id}-3" ou "{id}-3" ou "b{id}" ou "{id}"
    	 * @param 	string		$ref_bib_doc	cote+"-ver3.xml"
    	 * @return 	unknown		xml				numéro de fragment
    	 */
    	public function getNumeroDeFragment($ref_bib_doc, $id_bibl) {
     
    		$_XQUERY1='declare namespace dbp="http://dossiers-flaubert.ish-lyon.cnrs.fr/ns/1.0";
    			let $doc := doc("'.EXIST_COLLECTION.'/'.$ref_bib_doc.'-ver3.xml")
    			for $fragment in $doc//*:div[@*:type="fragment"]|$doc//*:item[@*:type="fragment"]
    			let $id_fragment := data($fragment/@*:n)
    			let $bibl := data($fragment/*:cit/*:bibl/@*:id) where $fragment/*:cit/*:bibl[@*:id="b'.$id_bibl.'-3"] 
    								| $fragment/*:cit/*:bibl[@*:id="b'.$id_bibl.'"]  
    								| $fragment/*:cit/*:bibl[@*:id="'.$id_bibl.'-3"] 
    								| $fragment/*:cit/*:bibl[@*:id="'.$id_bibl.'"] 
    				return <fragment>
    							<id_fragment>{$id_fragment}</id_fragment>
    						</fragment>';
     
    		$result1 = $this->db->executeQuery($_XQUERY1);
    		return $this->db->retrieve($result1, 0);
     
    	}
    On dirait presque qu'il ne trouve pas ma méthode getNumeroDeFragment() que j'ai rajouté dans ma classe xqueryBP sur le serveur en prod. Cela fonctionne très bien sur le serveur de dev.

    Voila, j'espère sincérement que cela vous parle, vous avez peut-être rencontré ce problème. Merci de votre aide.
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  2. #2
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    Je n'ai pas put éditer mon précédent message; alors :
    Après écrasement de l'intégralité du site, cela fonctionne -> mystère.
    La vérité est ailleurs, et je n'ai pas le temps d'aller la chercher, donc : Résolu.
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

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

Discussions similaires

  1. Problème de classe.
    Par maminova77 dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2006, 21h39
  2. Problème sur classe Transformer avec les <!--
    Par tykool dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/01/2006, 10h20
  3. Problème de classe
    Par DeusXL dans le forum DirectX
    Réponses: 15
    Dernier message: 04/12/2005, 14h37
  4. Problème de classe
    Par tidou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 14/10/2005, 17h49
  5. [FLASH MX2004] Problème de classe
    Par JulPoWeR dans le forum Flash
    Réponses: 1
    Dernier message: 10/07/2005, 22h51

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