如果 TD 不包含图像,如何忽略/继续?
如果 TD
不包含图像,我需要继续;
。
我尝试过这个:
if(!$image){continue;}
但这不起作用。
<?php
/////////////////////////////////////////////////////////////////////
$html='
<table>
<tr>
<td colspan="2">
<span>green</span>
<img src="green.gif" />
</td>
</tr>
<tr>
<td>
<span>yellow</span>
no image !!
</td>
<td>
<span>red</span>
<img src="red.gif" />
</td>
</tr>
</table>
<table>
<tr>
<td>
<span>black</span>
<img src="black.gif" />
</td>
</tr>
</table>
';
/////////////////////////////////////////////////////////////////////
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DomXPath($dom);
/////////////////////////////////////////////////////////////////////
$query = $xpath->query('.//table/tr/td');
for( $x=0,$results=''; $x<$query->length; $x++ )
{
$x1=$x+1;
$color = $query->item($x)->getElementsByTagName('span')->item(0)->nodeValue;
$image = $query->item($x)->getELementsByTagName('img');
if(!$image){continue;}
$image = $image->item(0)->getAttribute('src');
$results .= "color $x1 is : $color - and- image $x1 is : $image<br/>";
}
echo $results;
/////////////////////////////////////////////////////////////////////
?>
我该怎么办?
I need to continue;
if TD
does not contain an image.
I tried this:
if(!$image){continue;}
but that did not work.
<?php
/////////////////////////////////////////////////////////////////////
$html='
<table>
<tr>
<td colspan="2">
<span>green</span>
<img src="green.gif" />
</td>
</tr>
<tr>
<td>
<span>yellow</span>
no image !!
</td>
<td>
<span>red</span>
<img src="red.gif" />
</td>
</tr>
</table>
<table>
<tr>
<td>
<span>black</span>
<img src="black.gif" />
</td>
</tr>
</table>
';
/////////////////////////////////////////////////////////////////////
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DomXPath($dom);
/////////////////////////////////////////////////////////////////////
$query = $xpath->query('.//table/tr/td');
for( $x=0,$results=''; $x<$query->length; $x++ )
{
$x1=$x+1;
$color = $query->item($x)->getElementsByTagName('span')->item(0)->nodeValue;
$image = $query->item($x)->getELementsByTagName('img');
if(!$image){continue;}
$image = $image->item(0)->getAttribute('src');
$results .= "color $x1 is : $color - and- image $x1 is : $image<br/>";
}
echo $results;
/////////////////////////////////////////////////////////////////////
?>
How can I go about this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试:
if(!count($image)){continue;}
但按照戈登的建议修改查询会更有效。
Try:
if(!count($image)){continue;}
But it would be much more efficient to modify your query as Gordon suggested.
尝试使用
or (因为 loadHTML 添加了 HTML 骨架):
请参阅 http://codepad.viper-7.com/ TSMVxe
Try with
or (since loadHTML adds an HTML skeleton):
See http://codepad.viper-7.com/TsMVxe