IDタグによってはリンクを削除しようとしていますが、リンクの内容はそのまま残しておきます。たとえば、私は、私は以下を使用してみましたが PHP Dom要素の内容を削除する
Some text goes here
に
Some text goes <a href="http://www.domain.tdl/" id="remove">here</a>
をオンにしたいです。
$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;
は大体hereから運ばれたが、それだけで$html
の同じ内容をバック吐きます。
どのように私はこれを達成するだろうか?
あなたはここで文書を変更していないので、同じ内容が出るのです。あなたが提供した例では、DOMオブジェクト上で 'replaceChild'を呼び出していて、後で' saveXML'の出力で後で上書きする変数を作成しています。 –
良い質問、+1。目的のノードを正確に選択する単一のXPath式ソリューションの答えを見てください。 :) –