DomDocument->get_element_by_id qui marche pas

DomDocument->get_element_by_id qui marche pas - PHP - Programmation

Marsh Posté le 25-01-2005 à 12:42:26    

Je suis en train de faire deux-trois essais en PHP, à savoir prendre un fichier XHTML comme du XML et y faire quelques opérations dedans. Donc pour ça, j'ouvre mon fichier, et je récupère un div qui a pour id "articles". Enfin j'essaye de récupérer le div, parce que ça a pas l'air de fonctionner.
 
Voici le code :

Code :
  1. $file = file_get_contents('pouet.html');
  2. $dom = domxml_open_mem($file);
  3. $articles = $dom->get_element_by_id('articles');


 
Donc l'objet $dom contient bien tout mon fichier (en faisaint un $dom->dump_mem(), il me réaffiche le bon truc)  :) . Par contre, la méthode get_element_by_id me renvoi 'false'  :pt1cable: ... L'id (articles) est bon, donc je vois pas ce que j'ai fait de pas bien ?
 
Mercÿ  :jap:

Reply

Marsh Posté le 25-01-2005 à 12:42:26   

Reply

Marsh Posté le 25-01-2005 à 14:19:21    

et avec un:

Code :
  1. get_elements_by_tagname('div id=articles')


ça donne quoi ?


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 25-01-2005 à 15:04:02    

Il renvoi un array() avec rien dedans... Alors que :

Code :
  1. get_elements_by_tagname('div');

renvoi plein de choses...

Reply

Marsh Posté le 25-01-2005 à 15:07:57    

Bon j'ai regardé à droite à gauche... En fait cette fonction ne marche pas...
 
PHP, c'te blague quand-même...

Reply

Marsh Posté le 25-01-2005 à 15:16:22    

Citation :

Bon j'ai regardé à droite à gauche... En fait cette fonction ne marche pas...


en meme temps, c'est marqué dans la doc, donc ils sont couvert :o
 

Citation :

Suivant les standards DOM, cela impose l'utilisation d'une DTD qui définit l'attribut ID du type ID, même si l'implémentation courante fait une simple recherche xpath sur //*[@ID = '%s']. Ce n'est pas conforme aux standard DOM, qui demandent le retour de la valeur NULL s'il n'est pas possible de savoir quel attribut est de type id. Ce comportement sera probablement corrigé, alors ne vous fiez pas totalement à ce comportement actuel.


 
et pis ils annoncent quand meme que ce sera "probablement corrigé"...


Message édité par Xav_ le 25-01-2005 à 15:16:35

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 25-01-2005 à 15:18:49    

J'ai regardé dans la liste des bugs associés. Alors c'est corrigé, ensuite ça marche plus, puis c'est corrigé, ça remarche plus :??:
 
Les rapports de bugs datent d'il y a 3 ans... Quand-même...

Reply

Marsh Posté le 25-01-2005 à 15:42:20    

BON, autant pour moi... Fallait faire ça :

Code :
  1. $dom = domxml_open_mem($file, DOMXML_LOAD_VALIDATING);


 
Nécessaire pour confronter le document à sa DTD. Du coup il capte que l'attribut id est de type ID...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed