首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用nodeValue从domelement打印出html内容

使用nodeValue从domelement打印出html内容
EN

Stack Overflow用户
提问于 2011-06-12 18:32:44
回答 1查看 5.2K关注 0票数 4

我有html格式的图片。我将其解析为DOMDocument并开始使用它...

代码语言:javascript
运行
复制
$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“出来了。为什么我不能打印图像?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-12 18:40:58

您可以使用:

代码语言:javascript
运行
复制
DOMDocument::saveXML($img);

来自PHP Documetation的saveXML()

代码语言:javascript
运行
复制
$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;
    }
}

如果你使用的是PHP5.3.6,你可以使用(来自How to return outer html of DOMDocument?)

代码语言:javascript
运行
复制
$doc->saveHtml($img);

请注意链接问题中提到的注意事项:

(...)使用saveXml(),但这会创建符合XML的标记。在使用<a>(<img>)元素的情况下,这应该不是问题。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6321481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档