我有一个通过邮寄收到的 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>
有 child ,然后形成查询以将它们插入数据库。
我试过xpath。我可以找到 child 是否在那里,我可以数数。没问题。
$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";
}
关于使用 simpleXML 解析 php xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19882719/