Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/05/2007, 17h21   #1
Nouveau Membre du Club
 
Avatar de lemok
 
Inscription : mai 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 81
Points : 25
Points : 25
Par défaut [DOMXML] utilisation de la classe DOMDocument

Bonjour,

J'ai cree un objet DOMDocument à partir de données HTML pour recuperer une partie de code HTML comme suit:

$domdoc = new DOMDocument($dataHTML);
$myTabForm = $domdoc->get_elements_by_tagname('form');
...
...
...

et qand je souhaite renvoyer cette parite de code j'y arrive pas ($myTabForm) ... du moins ça m'affiche : "Object"
la fonction "saveHTML()" ne marche pas sur cette objet .. je pense que c'est dû au faite que ce n'est pas un objet DOMDocument
NB : j'utilise PHP 4.
une idee pt'etre?!
lemok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 17h30   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Bonjour,

la méthode getElementsByTagName() te retourne un élément de type DOMNodeList.

Si tu veux afficher l'intégralité de ces noeuds tu peux faire comme indiqué dans la doc de DOMNodeList->item()
Code :
1
2
3
4
5
6
7
8
 
<?php
$items = $doc->getElementsByTagName('entry');
foreach ($items as $item) 
    {
    echo $item->nodeValue . "<br/>";    
    }
?>
ou les stocker dans une string
Code :
1
2
3
4
5
6
7
8
9
 
<?php
$items = $doc->getElementsByTagName('entry');
$vListNode = "";
foreach ($items as $item) 
    {
    $vListNode .= $item->nodeValue . "<br/>";    
    }
?>
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 17h31   #3
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
J'ai pas compris : tu veux récupérer tout le contenu HTML de ton formulaire ? T'as essayé de faire $myTabForm->get_content() ou une autre méthode du genre ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 17h36   #4
Nouveau Membre du Club
 
Avatar de lemok
 
Inscription : mai 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 81
Points : 25
Points : 25
Citation:
Envoyé par _Mac_
J'ai pas compris : tu veux récupérer tout le contenu HTML de ton formulaire ? T'as essayé de faire $myTabForm->get_content() ou une autre méthode du genre ?
ça n'affiche rien avec get_content()
lemok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 17h55   #5
Nouveau Membre du Club
 
Avatar de lemok
 
Inscription : mai 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 81
Points : 25
Points : 25
Citation:
Envoyé par koopajah
Bonjour,

la méthode getElementsByTagName() te retourne un élément de type DOMNodeList.

Si tu veux afficher l'intégralité de ces noeuds tu peux faire comme indiqué dans la doc de DOMNodeList->item()
Code :
1
2
3
4
5
6
7
8
 
<?php
$items = $doc->getElementsByTagName('entry');
foreach ($items as $item) 
    {
    echo $item->nodeValue . "<br/>";    
    }
?>
ou les stocker dans une string
Code :
1
2
3
4
5
6
7
8
9
 
<?php
$items = $doc->getElementsByTagName('entry');
$vListNode = "";
foreach ($items as $item) 
    {
    $vListNode .= $item->nodeValue . "<br/>";    
    }
?>
ça m'affiche le message d'erreur suivant:
Call to undefined function: nodevalue() in ##
peut etre que c'est dû à ma version PHP ?
lemok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 17h56   #6
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
essaie de faire un pour voir ce que tu récupères...
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 18h09   #7
Nouveau Membre du Club
 
Avatar de lemok
 
Inscription : mai 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 81
Points : 25
Points : 25
Citation:
Envoyé par koopajah
essaie de faire un pour voir ce que tu récupères...
ça m'affiche :

object(domelement)(4) { ["type"]=> int(1) ["tagname"]=> string(4) "form" [0]=> int(5) [1]=> int(197873184) }
lemok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2007, 18h23   #8
Nouveau Membre du Club
 
Avatar de lemok
 
Inscription : mai 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 81
Points : 25
Points : 25
$domdoc = new DOMDocument($dataService);
$myTabForm = $domdoc->get_elements_by_tagname('form');


for($i=0; $i< count($myTabForm); $i++){

$classForm = $myTabForm[$i]->get_attribute('class');
$classFormLow = strtolower($classForm);

$pos = strrpos($classFormLow, $securedClassName);
if($pos !== FALSE){
echo"dedans<br />";

echo $myTabForm[$i]->get_content();

}
}

voici mon code qui est pour le moment ne m'affiche rien ... sauf biensur "dedans"
lemok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 11h23   #9
Nouveau Membre du Club
 
Avatar de lemok
 
Inscription : mai 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 81
Points : 25
Points : 25
Je cherche toujours la solution à mon probleme
euh! je recapitule un peu le probleme pour moi meme je commence à me perdre dans tout ça, alors
j'ai cree un objet DOMDocument comme suit:

$domdoc = new DOMDocument($dataService); // $dataService etant un flux HTML.

J'ai recupéré la partie du code HTML qui m'interesse avec :

$myTabForm = $domdoc->get_elements_by_tagname('form');

et je souhaiterai pour le moment envoyer cette partie du code pour l'afficher.
Je crois qu'il y a une fonction html_dump_mem(); qui fait ça mais j'arrive pas à l'appliquer pour mon cas.

peut etre que quelqu'un a une idée?!
lemok est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h45.


 
 
 
 
Partenaires

Hébergement Web