Ich versuche, bestimmte Links abhängig von ihrem ID-Tag zu entfernen, aber den Inhalt des Links verlassen. Zum Beispiel möchte ichPHP Dom Element entfernen Inhalt verlassen
Some text goes <a href="http://www.domain.tdl/" id="remove">here</a>
zu
Some text goes here
ich die unter Verwendung haben versucht, drehen.
$dom = new DOMDocument;
$dom->loadHtml(mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"));
$xp = new DOMXPath($dom);
foreach($xp->query('//a[contains(@id="remove")]') as $oldNode) {
$revised = strip_tags($oldNode);
}
$revised = mb_substr($dom->saveXML($xp->query('//body')->item(0)), 6, -7, "UTF-8");
echo $revised;
grob aus here genommen, aber es spuckt nur den gleichen Inhalt von $html
zurück.
Irgendwelche Ideen, wie ich das erreichen würde?
Sie ändern Ihr Dokument hier nicht, deshalb spuckt es den gleichen Inhalt. Beispiel: Sie haben 'replaceChild' auf dem DOM-Objekt aufgerufen, und Sie erstellen gerade eine Variable, die Sie später mit einer Ausgabe von' saveXML' überschreiben. –
Gute Frage, +1. Siehe meine Antwort auf eine einzelne XPath-Ausdruckslösung, die genau die gewünschten Knoten auswählt. :) –