繁体   English   中英

简单的DOM分析器IF无法正常工作

[英]Simple DOM Parser IF not working

谁能说出为什么第二个if语句拉出soldby名称不能正常工作?

我想要它做的就是从图像中拉出alt属性,如果有卖方图像的话-可以。 但是,如果没有图像徽标,则有一个带有卖方名称的粗体标签,我想将其插入alt标签所要位于的数组的同一位置。

我正在使用的HTML是:http:// amazon.com/gp/offer-listing/B002UYSHMM

有人可以帮忙吗?

谢谢!

$item = array();

foreach ($html->find('div.resultsset table tbody.result tr') as $article) { 
  if ($article->find('span.price', 0)) {  
    // get retail  
    $item[$retail.$i++] = $article->find('span.price', 0)->plaintext;  
    // get soldby
    if ($article->find('ul.sellerInformation img', 0)) {
      $item[$soldby.$j++] = $article->find('ul.sellerInformation img', 0)->getAttribute('alt');
    } else {
      $item[$soldby.$j++] = $article->find('ul.sellerInformation li a b', 0)->plaintext;
    }
    $ret['SellerInfo'] = $item;
  }
}

这是我从上面的代码中得到的数组:

 Array ( [0] => Array ( [Retail] => $219.88 [SoldBy] => J&R Music and Computer World ) [1] => Array ( [Retail] => $234.21 [SoldBy] => PORTABLE GUY ) [2] => Array ( [Retail] => $235.73 [SoldBy] => The Price Pros ) [3] => Array ( [Retail] => $234.74 [SoldBy] => GizmosForLife ) [4] => Array ( [Retail] => $230.00 [SoldBy] => ) [5] => Array ( [Retail] => $198.73 [SoldBy] => ) [6] => Array ( [Retail] => $240.72 [SoldBy] => ) [7] => Array ( [Retail] => $248.99 [SoldBy] => onSale ) ) 

您可以看到它缺少针对以下原因的SoldBy:

台阶大宝藏

Diakonos23

最佳房子

除了明智的做法是不要使用b ,选择器也有所不同。 第一个直接在列表中选择一个图像,第二个需要在列表项内的链接内使用粗体标签。

您是否尝试过使用

if (count($article->find('span.price'))) {

if (count($article->find('ul.sellerInformation img'))) {

弄清楚了:

foreach($html->find('div.resultsset table tbody.result tr') as $article) { 
if($article->find('span.price', 0)) {  
// get retail  
$item['Retail'] = $article->find('span.price', 0)->plaintext;  
// get soldby  
if($article->find('img', 0)->getAttribute('alt') <> '') {
$item['SoldBy'] = $article->find('img', 0)->getAttribute('alt'); }
else {$item['SoldBy'] = $article->find('ul.sellerInformation li a b', 0)->plaintext;}
$ret[] = $item; 
 }
} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM