createElement et appendChild link défaillant

Eléphanteau du PHP | 29 Messages

13 juil. 2007, 09:14

Bonjour,

Ce code ne créé pas l'élément link
$head = $xpath->query('//head')->item(0) ;
$link = $doc->createElement("link") ;
$link ->setAttribute("rel", "stylesheet") ;
$link ->setAttribute("type", "text/css") ;
$link ->setAttribute("href", "css/this.screen.css") ;
$head->appendChild($link);
mais celui-ci crée l'élément xxxlink
$head = $xpath->query('//head')->item(0) ;
$link = $doc->createElement("xxxlink") ;
$link ->setAttribute("rel", "stylesheet") ;
$link ->setAttribute("type", "text/css") ;
$link ->setAttribute("href", "css/this.screen.css") ;
$head->appendChild($link);
un élément xxxlink ne me sert évidemment à rien
par contre link c'est pas la même :!: :!: :!:

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

13 juil. 2007, 10:32

Mmh... chez moi ça marche. Prends l'habitude de donner un exemple qu'on peut réutiliser directement si tu veux maximiser tes chances d'avoir une réponse.

Essaie à partir de mon exemple, voir ce qui diffère et qui ne fonctionne pas
$doc = new DOMDocument;
$doc->loadXML('<html><head /><body /></html>');

$head = $doc->getElementsByTagName('head')->item(0);
$link = $doc->createElement("link");
$link->setAttribute("rel", "stylesheet");
$link->setAttribute("type", "text/css");
$link->setAttribute("href", "css/this.screen.css");
$head->appendChild($link);

echo $doc->saveXML();

Eléphanteau du PHP | 29 Messages

13 juil. 2007, 11:56

à vouloir être trop clair dans mes citations de code,
il m'arrive d'oublier l'essentiel.
je suis reparti de ton code, en le modifiant pas à pas

et ce code fonctionne
$doc = new DOMDocument;
@$doc->loadHTMLFile('http://www.lequipe.fr/Rugby/20070713_112353Dev.html');

$xpath = new DOMXPath($doc);
$head = $xpath->query('//head')->item(0) ;
$link = $doc->createElement("link");
$link->setAttribute("rel", "stylesheet");
$link->setAttribute("type", "text/css");
$link->setAttribute("href", "css/this.screen.css");
$head->appendChild($link);

echo utf8_decode($doc->saveHTML());
pourquoi ça ne fonctionne pas dans ma page originale :?:
pour l'instant je laisse ça dans la catégorie mystère informatiques

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 juil. 2007, 12:02

Ce ne serait pas l'espace que tu avais laissé entre la variable et la flèche qui aurait pu poser problème ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 29 Messages

13 juil. 2007, 12:20

Ce ne serait pas l'espace que tu avais laissé entre la variable et la flèche qui aurait pu poser problème ?
Bravo, bien vu

la tête dans le guidon et le copié-collé foireux

c'est donc doublement résolu