2013-06-26 36 views
-1

我有XML文件..我需要將它轉換成XMl到MYSQL。 。現在我的問題如何提取這兩陣列[求助] Php代碼提取xml文件數據到mySQL

每個陣列將有data..for例如不同

<r> $value </r> 

$值
第一陣列,
pmIntervalTxEthMaxUtilization數據:34,2和

爲第二陣列
pmIntervalRxPowerLevel數據:-9,70,
pmIntervalTxPowerLevel數據:13,1

。能有人幫助,指導如何編寫PHP代碼,此XML文件解壓到MY SQL

<mi> 
     <mts>20130618020000</mts> 
     <gp>900</gp> 
     <mt>pmIntervalRxUndersizedFrames</mt> [ this is 1st array] 
      <mt>pmIntervalTxEthMaxUtilization</mt> 
     <mv> 
      <moid>port:1:3:23-24</moid> 
      <sf>FALSE</sf> 
      <r>0</r> [the data for 1st array i want to insert in DB] 
      <r>34</r> 
     </mv> 
        <mv> 
      <moid>port:1:3:23-24</moid> 
      <sf>FALSE</sf> 
      <r>0</r> [the data for 1st array i want to insert in DB] 
      <r>2</r> 
     </mv> 
    </mi> 
    <mi> 
     <mts>20130618020000</mts>    
     <gp>900</gp> 
     <mt>pmIntervalRxSES</mt>   [this is 2nd array] 
     <mt>pmIntervalRxPowerLevel</mt> 
     <mt>pmIntervalTxPowerLevel</mt> 
     <mv> 
      <moid>client:1:3:23-24</moid> 
      <sf>FALSE</sf> 
      <r>0</r> [the data for 2nd array i want to insert in DB] 
      <r>-9</r> 
      <r>13</r> 
     </mv> 
        <mv> 
      <moid>client:1:3:23-24</moid> 
      <sf>FALSE</sf> 
      <r>0</r> [the data for 2nd array i want to insert in DB] 
      <r>70</r> 
      <r>1</r> 
     </mv> 
    </mi> 
+0

這個問題的不同內容似乎是脫離主題的,因爲它是關於大塊非獨立代碼的調試請求,它可能(或不可能)包含問題所詢問的代碼。相反,代碼應該減少一個最簡單的示例代碼,以簡潔和自我解釋的方式概述問題和問題。 – hakre

回答

0

你的問題的心不是我很清楚,你的意思是這樣一個嵌套的循環:

foreach($xml->mi as $mi){ 
    // This deep we loop through each <mi> value 
    foreach($mi->mv as $subchild){ 
    // Now we loop through each <mv> of the <mi> from the outer loop 
    // code here 
    } 
} 
+0

謝謝..但不同的循環(我有兩個不同的循環)將有不同的數據.. –

0

你需要一個嵌套的循環:

foreach($xml->mi as $mi) 
{ 
    foreach($mi->mv as $subchild) 
    { 
     ... 
     insert row 
     ... 
    } 
} 

這將循環每個<mi>節點,並隨後對每個它包含的<mv>

+0

好的.tq幫助 但不同的循環(我有兩個不同的循環)會有不同的數據。 –

0

這裏是代碼的時候,我們有兩個陣列數據

$i = 0 ; 
foreach($xml->md->mi as $mi)  
     { 
      foreach($mi->mv as $subchild) 
      { 
       if ($i <2) 
       { 
        //function code for 1st array 
        $i++; 
       } 

       else 
       { 
        //function code for 2nd array 
        $i++; 
       } 
      } 
     }