【问题标题】:Xml foreach loop with lots of records, limit records pulled by category and number具有大量记录的 XML foreach 循环,限制按类别和数量提取的记录
【发布时间】:2011-09-08 13:20:05
【问题描述】:
$feed = 'myfeed';

$xml = simplexml_load_file($feed);

foreach( $xml->productinfo as $productinfo )
{
$product_category = $productinfo->category;
$product_description = $productinfo->description;

now i inserv each product categor and description into my table.
}

我将产品数据、类别和描述存储在我的数据库中。

问题是 Feed 中有大约 5000 种产品,分为 10 个类别。我不需要为每个类别获得数百种产品,我只需要大约 50 种。我如何限制 foreach 循环,例如,当它循环通过 50 台电视时,停止并循环通过 50 台微波炉......等等.

有什么想法吗?

泰!

【问题讨论】:

  • 改用for
  • 这很复杂,假设 Feed 有 200 台电视、500 部手机、400 个遥控器。我只需要 50 个电视、50 个单元和 50 个遥控器进入我的数据库。

标签: php mysql xml foreach


【解决方案1】:

好的,如果我理解正确,你需要这样的东西:

$feed = 'myfeed';

$xml = simplexml_load_file($feed);

foreach( $xml->productinfo as $productinfo )
{
  $product_category = $productinfo->category;
  $$product_category++;
  if($$product_category>50) continue;
  $product_description = $productinfo->description;

//now i inserv each product categor and description into my table.
}

所以如果你有一个 product_category 让我们说电视:

$product_category='tv';
$$product_category=$tv;

如果您有 product_category,可以说是微波炉:

$product_category='microwave';
$$product_category=$microwave;

【讨论】:

  • ys,但是 xml 是线性的,我的意思是首先是 200 台电视,然后是 500 台微波炉......你的解决方案只会给我 50 台电视,而不是另外 50 台。如果我会有 4 只猫它不会到达第二只,微波炉。希望你明白我的意思,很难解释
  • erm,所有产品都在同一个 xml 中,对吗?这就是我所理解的...如果是这种情况,上面的代码将起作用...查看我的编辑,您可能会理解我的尝试做..除非每个类别都在不同的xml中??:S
  • 同一个xml,你真是个天才;)
  • 你能完整地编辑一下吗,我想知道把xml放在哪里
  • 你能不能更具体地说明你不明白的地方?如果我没有xml,我不能给你更多代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
相关资源
最近更新 更多