我正在使用此代码使用domdocument从img标签获取alt属性。如果页面包含没有alt属性的图像,或者alt属性为空,则无法识别。我需要一些帮助来编写条件来检查空的alt属性以及根本没有。感谢
$name = trim($words->nodeName);
if($name == 'img' )
{
$alt= $words->getAttribute('alt');
if(!empty($alt))
{
$this->matchedAnchors[$this->count]['alt'] = trim($words->getAttribute('alt'));
答案 0 :(得分:2)
您可以使用XPath:
//img[normalize-space(@alt) != '']
示例:
$xml = <<< XML
<ul>
<li><img alt="foo"/></li>
<li><img alt=" "/></li>
<li><img alt=""/></li>
<li><img /></li>
</ul>
XML;
$dom = new DOMDocument;
$dom->loadXML($xml);
$xp = new DOMXPath($dom);
foreach ($xp->query('//img[normalize-space(@alt) != ""]') as $img) {
echo $dom->saveXML($img);
}
只会打印
<img alt="foo"/>