【发布时间】:2017-11-03 02:41:43
【问题描述】:
经过反复试验,我终于有了将 XML 数据导入 MySQL 的 PHP 代码。唯一的问题,它只从第一个子节点获取数据。
我的 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
)
);
}
目前,这是遍历所有 Stem 标签并获取第一个 Log 标签的信息。 我需要它从所有日志标签中获取信息。 我试图重写我的 foreach 语句,但是我对此仍然很陌生,所以我希望有人能够告诉我哪里出错了?
【问题讨论】: