通过标记名称获取多个元素并在回显它的循环中检查元素标记

时间:2011-10-26 17:37:18

标签: php dom

这是可行的代码示例

$doc->loadHTML($article_header);
$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {

$imgs从标记名为$doc的{​​{1}}元素中获取,然后执行一些操作。

现在我要getElementsByTagName> img或iframe,然后使用$ img检查哪个元素是这个,如果它是iframe或img则回显。

如果可能,请修改我的代码。

2 个答案:

答案 0 :(得分:11)

您可以在DOMDocument上使用XPath,如下所示:

$doc->loadHTML($article_header);
$xpath = new DOMXpath($doc);

$imagesAndIframes = $xpath->query('//img | //iframe');

$length = $imagesAndIframes->length;
for ($i = 0; $i < $length; $i++) {
    $element = $imagesAndIframes->item($i);

    if ($element->tagName == 'img') {
        echo 'img';
    } else {
        echo 'iframe';
    }
}

答案 1 :(得分:-1)

最好使用以下方式,因为如果使用此代码,如果对象“{”中没有“iframe”/“img”标记,则不会收到任何错误{1}}“(因为您使用”$doc“函数完全检查是否存在任何元素): -

count()

希望它有所帮助。