Page 1 sur 1

[DOMNode::removeChild] Supprimer paragraphes

Posté : 05 janv. 2020, 01:05
par terebenthine
Bonjour,

Je souhaite supprimer les paragraphes. Le but ultime est plutôt de les remplacer. Quand j'aurai trouvé le moyen de les supprimer, je suppose que je pourrai les remplacer. :)

Voici mon code, qui ne fonctionne pas...
$texte = <<<EOT
<p>Les dispositions de <a href="#LEGIARTI000006419332" title="Suivre le lien">l'article 17-8</a> s'appliquent, à titre interprétatif, aux changements de nationalité consécutifs aux annexions et cessions de territoires résultant de traités antérieurs au 19 octobre 1945.</p><p>Toutefois, les personnes étrangères qui étaient domiciliées dans les territoires rétrocédés par la France, conformément au traité de Paris du 30 mai 1814 et qui, à la suite de ce traité, ont transféré en France leur domicile, n'ont pu acquérir, de ce chef, la nationalité française que si elles se sont conformées aux dispositions de la loi du 14 octobre 1814. Les Français qui étaient nés hors des territoires rétrocédés et qui ont conservé leur domicile sur ces territoires n'ont pas perdu la nationalité française, par application du traité susvisé.</p>
EOT;

$html = new DOMDocument();

libxml_use_internal_errors(true);

$html->loadHTML(mb_convert_encoding($texte, 'HTML-ENTITIES', 'UTF-8'));

libxml_clear_errors();

$xpath = new DOMXPath($html);

$elementsParagraphes = $xpath->query('//p');

foreach ($elementsParagraphes as $elementParagraphe) {
	
	$elementParagraphe->parentNode->removeChild($elementParagraphe);
	
}

echo $texte;
Le texte s'affiche... désespérément.

Merci pour votre aide.

T.

Re: [DOMNode::removeChild] Supprimer paragraphes

Posté : 05 janv. 2020, 03:16
par tesmet
Bonsoir. Rien à redire pour la destruction, elle est correcte. Par contre
echo $texte; // affichera toujours le texte original alors que
echo $html->saveHTML(); // devrait afficher selon le HTML modifié par le code.

Re: [DOMNode::removeChild] Supprimer paragraphes

Posté : 05 janv. 2020, 11:36
par terebenthine
@tesmet Merci. :D J'avais cherché pendant des heures. :cry: