我有一个问题。
当订单放在网站上时,它会生成一个包含2个值的.xml文件(EAN,OrderID)。
我制作了一个脚本,将.xml文件上传到数据库表。
所以这是我使用的代码:
foreach (glob("*.xml") as $filename) {
$result = $filename;
}
$xmlDoc = new DOMDocument();
$xmlDoc->load($result);
$xmlObject = $xmlDoc->getElementsByTagName('order');
$itemCount = $xmlObject->length;
for ($i=0; $i < $itemCount; $i++){
$ean = $xmlObject->item($i)->getElementsByTagName('product_ean13')->item(0)->childNodes->item(0)->nodeValue;
$orderID = $xmlObject->item($i)->getElementsByTagName('order_id')->item(0)->childNodes->item(0)->nodeValue;
$sql = $pdo->prepare("INSERT INTO `orders`
(ean,
orderID)
VALUES ( :ean,
:order)");
$sql->execute(array(
"ean" => $ean,
"order" => $orderID
));
}
如果退出.xml Feed,则(我使用glob(“*。xml”),因为.xml文件的名称永远不会相同..
现在我的问题是......我如何随时上传多个.xml文件?!
答案 0 :(得分:0)
尝试将整个代码段放在foreach
循环中,它会上传文件夹中的所有xml
个文件。
<强> CODE 强>
foreach (glob("*.xml") as $filename) {
$xmlDoc = new DOMDocument();
$xmlDoc->load($filename);
$xmlObject = $xmlDoc->getElementsByTagName('order');
$itemCount = $xmlObject->length;
for ($i = 0; $i < $itemCount; $i++) {
$ean = $xmlObject->item($i)->getElementsByTagName('product_ean13')->item(0)->childNodes->item(0)->nodeValue;
$orderID = $xmlObject->item($i)->getElementsByTagName('order_id')->item(0)->childNodes->item(0)->nodeValue;
$sql = $pdo->prepare("INSERT INTO `orders`
(ean,
orderID)
VALUES ( :ean,
:order)");
$sql->execute(array(
"ean" => $ean,
"order" => $orderID
));
}
}