2017-03-08 18 views
0

質問があります。 注文がウェブサイトに置かれると、2つの値(EAN、OrderID)を持つ.xmlファイルが生成されます。
.xmlファイルをデータベーステーブルにアップロードするスクリプトを作成しました。DOMDocument()を使用して複数の.xmlファイルをデータベースにアップロード

ので、これは私が使用するコードです:.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番号です。 $ 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 
     )); 
    } 
} 
関連する問題