我有一个电子商务网站,需要通过从分销商处通过ftp下载的巨大XML文件来更新产品。
products.xml文件的大小约为21MB,拉动数据并循环遍历它对于单次传递来说太简陋了。
我需要能够将原始XML文件或处理过的SimpleXMLElement分成1000个产品,然后加载文件并单独处理。
我将xml拉入SimpleXMLElement然后将其转换为数组,所以它看起来像这样:
[1] => Array
(
[PRODUCTS_NAME] => Product Name
[PRODUCTS_DESCRIPTION] => Product Description
[PRODUCTS_IMAGE] => 1234.jpg
[PRODUCTS_PRICE] => 9.99
[PRODUCTS_MODEL] => 1234
[ITEM_BRANDNAME] => Acme Inc.
[ITEM_UPC] => 01234567890
[ITEM_HEIGHT] => 0.500
[ITEM_LENGTH] => 4.250
[ITEM_DIAMETER] => 3.375
[PRODUCTS_WEIGHT] => 0.05
[MANUFACTURERS_NAME] => Acme Distributors
[ITEM_VENDOR_NUMBER] => XXX-1234
[PRODUCTS_QUANTITY] => 100
[DATE_RECIEVED] => 0000-00-00 00:00:00
[PROP_PACKAGING] => Blister Card
[PRODUCT_CLASS] => BAT
[PRODUCTS_TYPE] => Batteries
)
如何在每个文件中创建1000个产品的单个文件并保存?
答案 0 :(得分:2)
您可以使用simplexml
函数执行此操作:
$xml = simplexml_load_file('products.xml');
foreach($xml as $id => $product)
{
$product->asXml($id.'.xml');
}
您可以使用simplexml_load_string
代替simplexml_load_file
$xml = simplexml_load_string($products);
注意:必须是SimpleXMLElement
答案 1 :(得分:0)