2017-11-03 5 views
0

多くの試行錯誤の末、私は最終的にMySQLにXMLデータをインポートするPHPコードを持っています。唯一の問題は、最初の子ノードからデータを取得することだけです。PHPを使ってPHPを使ってXMLを最初の子データだけにインポートする

私のXMLデータはそのように構成されています。

<Machine> 
    <Stem> 
     <Log> 
      <ProductKey>1713</ProductKey> 
      <LogVolume logVolumeCategory="m3sub" logMeasurementCategory="Machine">0.5682</LogVolume> 
      <LogMeasurement logMeasurementCategory="Machine"> 
       <LogLength>551</LogLength> 
      </LogMeasurement> 
     </Log> 
     <Log> 
      <ProductKey>1713</ProductKey> 
      <LogVolume logVolumeCategory="m3sub" logMeasurementCategory="Machine">0.5682</LogVolume> 
      <LogMeasurement logMeasurementCategory="Machine"> 
       <LogLength>551</LogLength> 
      </LogMeasurement> 
     </Log> 
     <Log> 
      <ProductKey>1713</ProductKey> 
      <LogVolume logVolumeCategory="m3sub" logMeasurementCategory="Machine">0.5682</LogVolume> 
      <LogMeasurement logMeasurementCategory="Machine"> 
       <LogLength>551</LogLength> 
      </LogMeasurement> 
     </Log> 
    </Stem> 
    <Stem> 
     <Log> 
      <ProductKey>1713</ProductKey> 
      <LogVolume logVolumeCategory="m3sub" logMeasurementCategory="Machine">0.5682</LogVolume> 
      <LogMeasurement logMeasurementCategory="Machine"> 
       <LogLength>551</LogLength> 
      </LogMeasurement> 
     </Log> 
     <Log> 
      <ProductKey>1713</ProductKey> 
      <LogVolume logVolumeCategory="m3sub" logMeasurementCategory="Machine">0.5682</LogVolume> 
      <LogMeasurement logMeasurementCategory="Machine"> 
       <LogLength>551</LogLength> 
      </LogMeasurement> 
     </Log> 
     <Log> 
      <ProductKey>1713</ProductKey> 
      <LogVolume logVolumeCategory="m3sub" logMeasurementCategory="Machine">0.5682</LogVolume> 
      <LogMeasurement logMeasurementCategory="Machine"> 
       <LogLength>551</LogLength> 
      </LogMeasurement> 
     </Log> 
    </Stem> 
</Machine> 

PHP;現時点で

foreach($data->Stem as $Stem) 
    { 
     $statement->execute(
      array(
      ':productkey' => $Stem->SingleTreeProcessedStem->Log->ProductKey, 
      ':logvolume'  => $Stem->SingleTreeProcessedStem->Log->LogVolume[1], 
      ':loglength'  => $Stem->SingleTreeProcessedStem->Log->LogMeasurement->LogLength 
      ) 
     ); 

    } 

、これはすべてのタグをループして最初のログタグの情報を得ています。 すべてのログタグから情報を取得する必要があります。 私はforeachステートメントを書き直そうとしましたが、私はまだこれに新しいので、誰かが私が間違っている場所を教えてくれることを期待していますか?

答えて

0

あなたはもう一のforeachループ必要があります。ありがとうございました

foreach($data->Stem as $Stem) 
{ 
    foreach($Stem->Log as $Log) { 
     $statement->execute(
      array(
       ':productkey' => $Stem->SingleTreeProcessedStem->Log->ProductKey, 
       ':logvolume'  => $Stem->SingleTreeProcessedStem->Log->LogVolume[1], 
       ':loglength'  => $Stem->SingleTreeProcessedStem->Log->LogMeasurement->LogLength 
      ) 
     ); 
    } 
} 
+0

ああ!!!それは今私にとってとても分かりやすいようです –

関連する問題