begin process at 2012 05 29 01:24:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

DOMDocument - personnaliser ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

DOMDocument - personnaliser ?

jeudi 30 novembre 2006 à 02:39:10 | DOMDocument - personnaliser ?

tipat10

Bonjour,
Je souhaite "personnalier" les fonctions de DOMDocument.
J'ai donc créer ma propre classe :
class xml extends DOMDocument
{
   
//pour une requète xpath
    public function xpq($query, $all=false)
    {
        $xpath = new DOMXPath($this);
        $result = $xpath->query($query, $this);
        if ($all) return $result;
        else return $result->item(0);
    }
   
   
// attribut (nom plus court)
    public function attr($name)
    {
        return $this->getAttribute($name);
    }
}

Appel de la classe:
$xml = new xml();
$xml->load($file);
$node = $xml->xpq("//site/page[@nom='1']");
echo $node->attr("nom");
J'obtiens l'erreur suivante :
Fatal error: Call to undefined method DOMElement::attr()

Je crois quie le problème c'est que $node est de type DOMElement et donc qu'il ne peut pas accéder à attr().
Je ne sais vraiment pas quoi faire pour résoudre ce problème.  C'est la première fois que je m'aventure à faire une class.  Pouvez-vous m'aider SVP ?

jeudi 30 novembre 2006 à 09:32:43 | Re : DOMDocument - personnaliser ?

malalam

Administrateur CodeS-SourceS
Hello,

$node = $xml->xpq("//site/page[@nom='1']");
appelle cette méthode de ta classe xml :
    public function xpq($query, $all=false)
    {
        $xpath = new DOMXPath($this);
        $result = $xpath->query($query, $this);
        if ($all) return $result;
        else return $result->item(0);
    }

qui retourne un DOMElement, et pas une instance de ta classe.

echo $node->attr("nom");

Appelle la méthode attr() de la classe DOMElement.
Et effectivement, cette méthode n'existe pas.

Tu ne parviendras pas à tes fins aussi facilement...
Si tu veux faire ce que tu essayes de faire, tu vas devoir surcharger plkusieurs classes, en plus de DOMDocument. Ici, tu devras déjà étendre DOMXpath, et surcharger sa méthode query, pour qu'elle renvoie une classe personnalisée, à toi, qui étendra DOMElement, et surcharger la méthode DOMElement::getAttribute ().

La POO est plus compliquée que ce que tu le penses ;-)



vendredi 1 décembre 2006 à 00:19:13 | Re : DOMDocument - personnaliser ?

tipat10

Bonjour,
Merci pour ta réponse

Si je comprend bien, il faudrait que je refasse toute les classes DOM* avec mes propre fonction.  C'est bien ça ?
si oui, comment obtenir les source php pour les modifier ?


Cette discussion est classée dans : xml, query, attr, xpath, domdocument


Répondre à ce message

Sujets en rapport avec ce message

PHP5 + XML + DOM, il y a t il un bug ou bien je suis vraiment nul ??? [ par izanifu ] Bonjour à tous,Voila je developpe pour mon travail une classe en php5 basé sur DOM pour pouvoir faire des add/mod/del sur un fichier XML.Comment cela PHP5 DomDoument [ par Steph115 ] Bonjour, (D'après le PHPINFO)Je possède PHP Version 5.2.5 ainsi que l'extension domxmlDOM/XML  enabled  DOM/XML API Version  20030407  libxml Versio Probleme DOMDocument PHP/XML [ par codefalse ] Bonjour à tous.Voila mon soucis.J'ai une fonction qui me genere un document xml de ce genre :function createXML () {        $oDomDoc = new DOMDocument Utilisation de Xpath [ par anthony428 ] Bonjour à tous, depuis peu, je travaille avec des fichiers xml de grandes tailles, enfin pour moi ce sont des fichiers de grandes tailles. L'ennui es XML et DomDocument [ par rambc ] Voilà un morceau de code XML    1ère ligne    2ème ligne a*x^2+b*x+c=0Lorsque j'utilise getAttribute avec la classe DomDocument, je ne insertion failed [ par vinz78 ] $nomlabo=$HTTP_POST_VARS['Nomlab'];$idlabo=$HTTP_POST_VARS['id_labo'];$nomcont=$HTTP_POST_VARS['nom_cont'];$telephonecont=$HTTP_POST_VARS['telephone'] Authentification par variable de session [ par Sniark ] Bonjour, J'ai une page de Login qui renvoit vers une page de résultats affichant les annonces écrites par l'utilisateur.La page de résultat affiche le Transformation XSL [ par sheeana_kt ] Bonjour à tous,Je suis en train de refondre mon site et je souhaite utiliser la techno XML/XSL. L'idée est d'utiliser le XML comme "bus" d'information Probleme de doublon - Parsing XML / XSTt [ par Akita95 ] Bonjour tout le monde,J'ai un petit problème concernant le parsing d'un de mes documents XML. Faisons court, faisons bien, voici la description de mon problème xml [ par JCpp ] Bonjour,Je suis novice en php, et je ne comprends pas encore tout.Je voudrais afficher "ok, je ne fait plus de bruit" quand $world = "silence"


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales