2017-03-08 33 views
0

我有一個問題。 當在網站上下訂單時,它會生成一個帶有2個值的.xml文件(EAN,OrderID)。
我製作了一個將.xml文件上傳到數據庫表的腳本。使用DOMDocument將多個.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 
)); 
    } 

$ EAN是EAN號碼,如果走出.XML飼料。 也是$ orderID。

(我用的水珠(「*。xml」的),因爲.xml文件的名稱是絕不相同..

現在我的問題是...我怎樣才能上傳多個.xml文件在任何時間?

回答

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 
     )); 
    } 
} 
相關問題