web-dev-qa-db-ja.com

DOMDocument :: loadHTMLとgetElementsByTagNameを使用して、タグ名でDOM要素を取得します

これが再投稿された場​​合は申し訳ありませんが、私はそれについて頭を悩ませることができず、見つけたすべての利用可能なドキュメントと例を試しました。

HTMLを含む文字列の最初のimg要素を取得しようとしています

[〜#〜] php [〜#〜]

_$html = '<p><img src="http://placekitten.com/200/300" alt="" width="200" height="300" /></p>';
$dom = new DOMDocument;
$dom->loadHTML($html);
$imgs = $dom->getElementsByTagName('img');
var_dump($imgs);
_

これは、1つのオカレンスを見つける必要があるときにobject(DOMNodeList)#57 (0) { }を吐き出します。

私もXPathを試してみましたが運がありませんでした。

12
Naoise Golden

これを使って:

$img = $dom->getElementsByTagName('img')->item(0);
echo $img->attributes->getNamedItem("src")->value;
20
nickb

正解はすでに@ nickbによって提供されていますが、@ nickb)によって提供されるコードの2行目でgetNamedItem()を使用せずに同じことを行うこともできます。、このように:

echo $img->attributes->src->value;

注:上記のコードをコメントとして@ nickbの回答に追加したかったのですが、そのためには最低50のレピュテーションが必要です。誰かが上記のコード行をコメントとして@ nickbの答えに書くことができるなら、私に知らせてください。その後、回答を削除します。

0
Uzair Zia