PHPのDOM操作について質問です。

以下のようなDOM操作の流れで、class名が"foo"の<img>だけ、DOM操作でremoveするにはどういうコードになりますか?

<?php
mb_internal_encoding('UTF-8');

$sour =<<< EOT
texttexttexttexttext<img src="aaa.png" class="hoge" /><img src="bbb.png" class="foo" />texttexttexttexttext
EOT;

//XMLにする
$sour = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<div>" . $sour . "</div>";

$doc = new DOMDocument();
$doc->loadXML($sour);
echo $doc->saveXML($doc);
?>

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:
  • 終了:2009/05/19 10:00:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:i4ooon No.1

回答回数56ベストアンサー獲得回数20

ポイント60pt

http://blog.livedoor.jp/osadasoft/archives/51081997.html

あたりを参考にして。

$doc->loadXML($sour);

echo $doc->saveXML($doc);

の間に

$imgs=$doc->getElementsByTagName('img');

for($i=0;$i<$imgs->length;$i++){

$class=$imgs->item($i)->getAttribute('class');

if($class=='foo'){

$imgs->item($i)->parentNode->removeChild($imgs->item($i));

}

}

を追加。で、できましたよ。

id:P-mako

できました!

ありがとうございます。

2009/05/19 10:00:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません