douhao2856 2017-02-12 22:14
浏览 87
已采纳

尝试从XML属性获取特定值

Trying to scrape an IKEA page at the following link:

http://www.ikea.com/it/it/catalog/products/60255550/?type=xml&dataset=prices

I want to scrape the price of the item, but in the xml file the price appears once unformatted and once with the Euro sign next to it. I wish to scrape the priceNormal unformatted value specifically.

<prices>
<normal>
<priceNormal unformatted="44.99">€ 44,99</priceNormal>
<pricePrevious/>
<priceNormalPerUnit/>
<pricePreviousPerUnit/>
</normal>

My code below doesn't echo the price at all, not sure where I'm going wrong :(

$string = 'http://www.ikea.com/it/it/catalog/products/60255550/?type=xml&dataset=prices';

$xml=simplexml_load_file($string) or die("Error: Cannot create object");
//print_r($xml);

echo $xml->product->prices;
  • 写回答

2条回答 默认 最新

  • dongyan9950 2017-02-12 23:17
    关注

    You should be able to get the price with

    $xml->products->product->items->item->prices->normal->priceNormal
    $xml->products->product->items->item->prices->normal->priceNormal->attributes()->unformatted
    

    If you however need to iterate of a result set, you can break up the places where you are expecting multiples with iteration...

    foreach( $xml->products->product as $product )
    {
      echo $product->name;
      foreach( $product->items->item as $item )
      {
        echo $item->name;
        echo $item->prices->normal->priceNormal;
        echo $item->prices->normal->priceNormal->attributes()->unformatted;
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器