我有一个XML文件,我通过邮寄收到。

<response>
       <id>D234>/id>
       <Logs>
          <time>UTC</time>
          <Alarms>
          </Alarms>
       </Logs>
</response>

有时它可能很少有报警日志
<response>
   <id>D234>/id>
   <Logs>
    <time>UTC</time>
    <Alarms>
        <Log>
            <LD>Reset </LD>
            <utc>1383704429</utc>
        </Log>
        <Log>
            <LD>Triggered </LD>
            <utc>1383601449</utc>
        </Log>
    </Alarms>
    </Logs>
</response>

我想检查<Alarms>是否有子节点,然后形成一个查询将它们插入到db中。
我试过xpath。我能找到孩子们在不在,我能数数。没问题。
$xml = simplexml_load_string(POST_DATA);
$alarms = $xml->xpath('Logs/Alarms');
echo count($alarms);

但是怎样才能穿过每一根原木呢?这样我就可以形成一个查询进入数据库。我不知所措。
我怎样才能得到Log0->time

最佳答案

试试这个:-

$alarms = $xml->xpath('Logs/Alarms/Log');
foreach ($alarms as $oneAlarm) {
    echo $oneAlarm->LD . "\n";
    echo $oneAlarm->utc . "\n";
}

10-06 03:19