簡體   English   中英

使用 nodeValue 從 domelement 打印出 html 內容

[英]printing out html content from domelement using nodeValue

我在 html 中有圖像。 我將其解析為 DOMDocument 並開始使用它...

$doc = new DOMDocument();
$doc->loadHTML($article_header);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
$container = $img->parentNode;

if ($container->tagName != "a") { 
    $image_inside=utf8_decode($img->nodeValue);
    echo "3".$image_inside;
    die;
}
}

此代碼工作正常第 3 行獲取圖像。 第 6 行知道這個“img”標簽上方沒有“a”標簽,第 8 行必須打印出我的初始圖像。 但問題是我只看到沒有圖像標簽的“3”等等......

我確實檢查了元素,但那里什么也沒有。 只是“3”出來了。 為什么我無法打印出圖像?

你可以使用:

DOMDocument::saveXML($img);

來自 PHP 文檔的saveXML()

$doc = new DOMDocument();
$doc->loadHTML($article_header);

$imgs = $doc->getElementsByTagName('img');
foreach ($imgs as $img) {
    $container = $img->parentNode;

    if ($container->tagName != "a") { 
       echo utf8_decode($doc->saveXML($img));
       die;
    }
}

如果您使用的是 PHP 5.3.6,您可以使用(來自如何返回 DOMDocument 的外部 html?

$doc->saveHtml($img);

請注意鏈接到問題中提到的警告:

(...) 使用 saveXml(),但這會創建符合 XML 的標記。 對於<a>(<img>)元素,這應該不是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM