Bon, et comment faire ?
Depuis, j'avais vu ce manque, et cette fois je récupère *tout* le texte
mais vraiment *tout* et y compris celui des autres balises et en un seul
jet.
:-(
A ce que je comprends, l'idée est de réceptionner une page (sans doute
construite par une espèce de formulaire) d'en extraire que le contenu
("contenu du body") pour l'intégrer dans une partie d'une autre et à mon
idée c'est vraiment un travail à faire traiter via le DOM.
Avec un peu de chance le résultat pourra être un peu + standard ?
L'exemple donné ne passant pas au validateur :
" You have used character data somewhere it is not permitted to appear.
* putting text directly in the body of the document without wrapping
it in a container element (such as a <p>aragraph</p>)"
Bon, et comment faire ?
Depuis, j'avais vu ce manque, et cette fois je récupère *tout* le texte
mais vraiment *tout* et y compris celui des autres balises et en un seul
jet.
:-(
A ce que je comprends, l'idée est de réceptionner une page (sans doute
construite par une espèce de formulaire) d'en extraire que le contenu
("contenu du body") pour l'intégrer dans une partie d'une autre et à mon
idée c'est vraiment un travail à faire traiter via le DOM.
Avec un peu de chance le résultat pourra être un peu + standard ?
L'exemple donné ne passant pas au validateur :
" You have used character data somewhere it is not permitted to appear.
* putting text directly in the body of the document without wrapping
it in a container element (such as a <p>aragraph</p>)"
Bon, et comment faire ?
Depuis, j'avais vu ce manque, et cette fois je récupère *tout* le texte
mais vraiment *tout* et y compris celui des autres balises et en un seul
jet.
:-(
A ce que je comprends, l'idée est de réceptionner une page (sans doute
construite par une espèce de formulaire) d'en extraire que le contenu
("contenu du body") pour l'intégrer dans une partie d'une autre et à mon
idée c'est vraiment un travail à faire traiter via le DOM.
Avec un peu de chance le résultat pourra être un peu + standard ?
L'exemple donné ne passant pas au validateur :
" You have used character data somewhere it is not permitted to appear.
* putting text directly in the body of the document without wrapping
it in a container element (such as a <p>aragraph</p>)"
...Comment alors pourais je récupérer le body, son contenu et le /body pour
laisser se mourir notre pauvre doctype préconfiguré ainsi que les
données du head
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
...
Comment alors pourais je récupérer le body, son contenu et le /body pour
laisser se mourir notre pauvre doctype préconfiguré ainsi que les
données du head
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
...Comment alors pourais je récupérer le body, son contenu et le /body pour
laisser se mourir notre pauvre doctype préconfiguré ainsi que les
données du head
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
...Comment alors pourais je récupérer le body, son contenu et le /body pour
laisser se mourir notre pauvre doctype préconfiguré ainsi que les
données du head
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
Non, ça ne marchera pas. Cf. l'exemple suivant :
Bien vu, mais explode('body>',$texte,-1) le fera dans tes deux cas.
...
Comment alors pourais je récupérer le body, son contenu et le /body pour
laisser se mourir notre pauvre doctype préconfiguré ainsi que les
données du head
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
Non, ça ne marchera pas. Cf. l'exemple suivant :
Bien vu, mais explode('body>',$texte,-1) le fera dans tes deux cas.
...Comment alors pourais je récupérer le body, son contenu et le /body pour
laisser se mourir notre pauvre doctype préconfiguré ainsi que les
données du head
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
Non, ça ne marchera pas. Cf. l'exemple suivant :
Bien vu, mais explode('body>',$texte,-1) le fera dans tes deux cas.
cette fois je récupère *tout* le texte
et y compris celui des autres balises et en un seul jet.
Si tu consultes l'attribut textContent de l'élément, tu récupère
effectivement tout le texte contenu dans le n½ud élément et ces enfants.
L'exemple donné ne passant pas au validateur :
Oui, parce qu'il n'est pas valide. Aucune DTD n'est définie pour
commencer, ce que DOMDocument n'aime pas tellement.
Pour récupérer le contenu texte du body, tu pourrais utiliser ça :
$bodyElmt = $dom->getElementsByTagName('body')->item(0) ;
$txtNodes = array() ;
if($bodyElmt->hasChildNodes())
foreach($body->childNodes as $baby)
if($baby->nodeType == DOMDocument::XML_TEXT_NODE)
$txtNodes[] = $baby ;
Sinon il y a une autre solution
<news:479ff308$0$12361$ que j'ai déjà détaillé.
cette fois je récupère *tout* le texte
et y compris celui des autres balises et en un seul jet.
Si tu consultes l'attribut textContent de l'élément, tu récupère
effectivement tout le texte contenu dans le n½ud élément et ces enfants.
L'exemple donné ne passant pas au validateur :
Oui, parce qu'il n'est pas valide. Aucune DTD n'est définie pour
commencer, ce que DOMDocument n'aime pas tellement.
Pour récupérer le contenu texte du body, tu pourrais utiliser ça :
$bodyElmt = $dom->getElementsByTagName('body')->item(0) ;
$txtNodes = array() ;
if($bodyElmt->hasChildNodes())
foreach($body->childNodes as $baby)
if($baby->nodeType == DOMDocument::XML_TEXT_NODE)
$txtNodes[] = $baby ;
Sinon il y a une autre solution
<news:479ff308$0$12361$426a34cc@news.free.fr> que j'ai déjà détaillé.
cette fois je récupère *tout* le texte
et y compris celui des autres balises et en un seul jet.
Si tu consultes l'attribut textContent de l'élément, tu récupère
effectivement tout le texte contenu dans le n½ud élément et ces enfants.
L'exemple donné ne passant pas au validateur :
Oui, parce qu'il n'est pas valide. Aucune DTD n'est définie pour
commencer, ce que DOMDocument n'aime pas tellement.
Pour récupérer le contenu texte du body, tu pourrais utiliser ça :
$bodyElmt = $dom->getElementsByTagName('body')->item(0) ;
$txtNodes = array() ;
if($bodyElmt->hasChildNodes())
foreach($body->childNodes as $baby)
if($baby->nodeType == DOMDocument::XML_TEXT_NODE)
$txtNodes[] = $baby ;
Sinon il y a une autre solution
<news:479ff308$0$12361$ que j'ai déjà détaillé.
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
Non, ça ne marchera pas. Cf. l'exemple suivant :
Bien vu, mais explode('body>',$texte,-1) le fera dans tes deux cas.
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
Non, ça ne marchera pas. Cf. l'exemple suivant :
Bien vu, mais explode('body>',$texte,-1) le fera dans tes deux cas.
Une idée comme ça : comme les occurences du mot 'body' ne peuvent être
plus de 2, pourquoi ne pas commencer par un explode('body',$texte,-1) et
ainsi récupérer l'en tête et le corps ?
Non, ça ne marchera pas. Cf. l'exemple suivant :
Bien vu, mais explode('body>',$texte,-1) le fera dans tes deux cas.
J'ai fait :
$doc = new DOMDocument();
if (!$dom = @$doc->loadHTML($texte)) {
echo "Erreur lors de l'analyse du documentn";
exit;
}
Quoi ? Comment ? tu m'as copié ? :-)
Je vois que tu y sites ma source d'info et d'apprentissage.
<http://fr.php.net/manual/fr/ref.dom.php>
Ou bien je ne sais pas m'en servir, ou bien ne sais pas la lire,
mais je trouve malheureux qu'on ne nous dise pas d'entrée ce que sont :
Je suis encore une fois effaré de la complexité du PHP, rien que pour ce
DOM on a je ne sais combien d'instructions chatouilleuses et ne suis pas
parvenu à y trouver un truc simple pour l'équivalent du innerHTML du
JavaScript par exemple.
'textContent', auquel tu fais allusion ci-haut, je le trouve au 10ieme
scroll d'écran de 'ref.dom.php'
Bon, ce serait une propriété de DOMNode
Oui? et alors ? déjà que DOMNode n'est pas dans mon petit listing
ci-dessus, comment se sert-on de ces propriétés ?
Voyons voir :
echo $doc->getElementsByTagName("body")->item(0)->textContent;
Non, ce n'est encore pas innerHTML
Ça va pas être coton d'intégrer tout ça.
Tu codes avec la doc à côté ou bien le fais-tu tout de mémoire ?
J'ai fait :
$doc = new DOMDocument();
if (!$dom = @$doc->loadHTML($texte)) {
echo "Erreur lors de l'analyse du documentn";
exit;
}
Quoi ? Comment ? tu m'as copié ? :-)
Je vois que tu y sites ma source d'info et d'apprentissage.
<http://fr.php.net/manual/fr/ref.dom.php>
Ou bien je ne sais pas m'en servir, ou bien ne sais pas la lire,
mais je trouve malheureux qu'on ne nous dise pas d'entrée ce que sont :
Je suis encore une fois effaré de la complexité du PHP, rien que pour ce
DOM on a je ne sais combien d'instructions chatouilleuses et ne suis pas
parvenu à y trouver un truc simple pour l'équivalent du innerHTML du
JavaScript par exemple.
'textContent', auquel tu fais allusion ci-haut, je le trouve au 10ieme
scroll d'écran de 'ref.dom.php'
Bon, ce serait une propriété de DOMNode
Oui? et alors ? déjà que DOMNode n'est pas dans mon petit listing
ci-dessus, comment se sert-on de ces propriétés ?
Voyons voir :
echo $doc->getElementsByTagName("body")->item(0)->textContent;
Non, ce n'est encore pas innerHTML
Ça va pas être coton d'intégrer tout ça.
Tu codes avec la doc à côté ou bien le fais-tu tout de mémoire ?
J'ai fait :
$doc = new DOMDocument();
if (!$dom = @$doc->loadHTML($texte)) {
echo "Erreur lors de l'analyse du documentn";
exit;
}
Quoi ? Comment ? tu m'as copié ? :-)
Je vois que tu y sites ma source d'info et d'apprentissage.
<http://fr.php.net/manual/fr/ref.dom.php>
Ou bien je ne sais pas m'en servir, ou bien ne sais pas la lire,
mais je trouve malheureux qu'on ne nous dise pas d'entrée ce que sont :
Je suis encore une fois effaré de la complexité du PHP, rien que pour ce
DOM on a je ne sais combien d'instructions chatouilleuses et ne suis pas
parvenu à y trouver un truc simple pour l'équivalent du innerHTML du
JavaScript par exemple.
'textContent', auquel tu fais allusion ci-haut, je le trouve au 10ieme
scroll d'écran de 'ref.dom.php'
Bon, ce serait une propriété de DOMNode
Oui? et alors ? déjà que DOMNode n'est pas dans mon petit listing
ci-dessus, comment se sert-on de ces propriétés ?
Voyons voir :
echo $doc->getElementsByTagName("body")->item(0)->textContent;
Non, ce n'est encore pas innerHTML
Ça va pas être coton d'intégrer tout ça.
Tu codes avec la doc à côté ou bien le fais-tu tout de mémoire ?
Au fait, il ne fonctionnera pas non plus pour le code suivant, valide
HTML 4.01 Strict, mais aucune solution à base de regexp ne fonctionnera
ici, contrairement à une solution à base de DOM :
Au fait, il ne fonctionnera pas non plus pour le code suivant, valide
HTML 4.01 Strict, mais aucune solution à base de regexp ne fonctionnera
ici, contrairement à une solution à base de DOM :
Au fait, il ne fonctionnera pas non plus pour le code suivant, valide
HTML 4.01 Strict, mais aucune solution à base de regexp ne fonctionnera
ici, contrairement à une solution à base de DOM :
J'ai fait :
$doc = new DOMDocument();
if (!$dom = @$doc->loadHTML($texte)) {
echo "Erreur lors de l'analyse du documentn";
exit;
}
Attention ! loadHTML ne renvoie pas la même valeur si il est utilisé
comme méthode de l'objet ou comme fonction statique
<http://fr2.php.net/manual/fr/function.dom-domdocument-load.php> :
if (! @$doc->loadHTML($texte)) {
<http://fr.php.net/manual/fr/ref.dom.php>
Ou bien je ne sais pas m'en servir, ou bien ne sais pas la lire,
Comme dit en préambule de la documentation de l'implémentation de
l'API DOM, ils supposent que tu connaissent déjà les principes, ou que
tu ais lu la documentation normalisant DOM
<http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html>
trouver un truc simple pour l'équivalent du innerHTML du
JavaScript par exemple.
Il n'y en a pas, et heureusement. innerHTML c'est quand même la porte
ouverte à des choses bien gorets, non ? Et puis c'est pas standard.
Ça va pas être coton d'intégrer tout ça.
Tu n'utilisais jamais ça en javascript ?
J'ai fait :
$doc = new DOMDocument();
if (!$dom = @$doc->loadHTML($texte)) {
echo "Erreur lors de l'analyse du documentn";
exit;
}
Attention ! loadHTML ne renvoie pas la même valeur si il est utilisé
comme méthode de l'objet ou comme fonction statique
<http://fr2.php.net/manual/fr/function.dom-domdocument-load.php> :
if (! @$doc->loadHTML($texte)) {
<http://fr.php.net/manual/fr/ref.dom.php>
Ou bien je ne sais pas m'en servir, ou bien ne sais pas la lire,
Comme dit en préambule de la documentation de l'implémentation de
l'API DOM, ils supposent que tu connaissent déjà les principes, ou que
tu ais lu la documentation normalisant DOM
<http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html>
trouver un truc simple pour l'équivalent du innerHTML du
JavaScript par exemple.
Il n'y en a pas, et heureusement. innerHTML c'est quand même la porte
ouverte à des choses bien gorets, non ? Et puis c'est pas standard.
Ça va pas être coton d'intégrer tout ça.
Tu n'utilisais jamais ça en javascript ?
J'ai fait :
$doc = new DOMDocument();
if (!$dom = @$doc->loadHTML($texte)) {
echo "Erreur lors de l'analyse du documentn";
exit;
}
Attention ! loadHTML ne renvoie pas la même valeur si il est utilisé
comme méthode de l'objet ou comme fonction statique
<http://fr2.php.net/manual/fr/function.dom-domdocument-load.php> :
if (! @$doc->loadHTML($texte)) {
<http://fr.php.net/manual/fr/ref.dom.php>
Ou bien je ne sais pas m'en servir, ou bien ne sais pas la lire,
Comme dit en préambule de la documentation de l'implémentation de
l'API DOM, ils supposent que tu connaissent déjà les principes, ou que
tu ais lu la documentation normalisant DOM
<http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html>
trouver un truc simple pour l'équivalent du innerHTML du
JavaScript par exemple.
Il n'y en a pas, et heureusement. innerHTML c'est quand même la porte
ouverte à des choses bien gorets, non ? Et puis c'est pas standard.
Ça va pas être coton d'intégrer tout ça.
Tu n'utilisais jamais ça en javascript ?
Au fait, il ne fonctionnera pas non plus pour le code suivant, valide
HTML 4.01 Strict, mais aucune solution à base de regexp ne fonctionnera
ici, contrairement à une solution à base de DOM :
Voilà une analyse complète. Merci.
Au fait, il ne fonctionnera pas non plus pour le code suivant, valide
HTML 4.01 Strict, mais aucune solution à base de regexp ne fonctionnera
ici, contrairement à une solution à base de DOM :
Voilà une analyse complète. Merci.
Au fait, il ne fonctionnera pas non plus pour le code suivant, valide
HTML 4.01 Strict, mais aucune solution à base de regexp ne fonctionnera
ici, contrairement à une solution à base de DOM :
Voilà une analyse complète. Merci.
Bon, finalement, si on continue ici, je n'ouvre pas de fil.
Heu ... ils parlent là de load() et non de loadHTML()
(me reste à tester leurs exemples, car, bien sûr, je n'ai rien compris)
Oui, mais je suppose que ma variable $dom ne gène pas ?
<http://www.yoyodesign.org/doc/w3c/dom2-core/core.html>
m'a l'air moins complet.
En JS c'est comparativement essstrémement simple,
on n'a pas de notions hyper chatouilleuses comme en PHP.
Au hasard :
Entity = nom de l'entité
EntityReference = nom de l'entité appelée
si ce n'est pas se compliquer la vie ?
Bon, finalement, si on continue ici, je n'ouvre pas de fil.
Heu ... ils parlent là de load() et non de loadHTML()
(me reste à tester leurs exemples, car, bien sûr, je n'ai rien compris)
Oui, mais je suppose que ma variable $dom ne gène pas ?
<http://www.yoyodesign.org/doc/w3c/dom2-core/core.html>
m'a l'air moins complet.
En JS c'est comparativement essstrémement simple,
on n'a pas de notions hyper chatouilleuses comme en PHP.
Au hasard :
Entity = nom de l'entité
EntityReference = nom de l'entité appelée
si ce n'est pas se compliquer la vie ?
Bon, finalement, si on continue ici, je n'ouvre pas de fil.
Heu ... ils parlent là de load() et non de loadHTML()
(me reste à tester leurs exemples, car, bien sûr, je n'ai rien compris)
Oui, mais je suppose que ma variable $dom ne gène pas ?
<http://www.yoyodesign.org/doc/w3c/dom2-core/core.html>
m'a l'air moins complet.
En JS c'est comparativement essstrémement simple,
on n'a pas de notions hyper chatouilleuses comme en PHP.
Au hasard :
Entity = nom de l'entité
EntityReference = nom de l'entité appelée
si ce n'est pas se compliquer la vie ?