如何拆分xml标签变量并用php显示

时间:2014-01-13 21:02:53

标签: php xml

我在调用外部API后得到这个xml,我希望显示所有部分!第一个4(id,description,minRepeatInterval和active)我知道如何显示。我正在使用:

        $xmlEvents = $response->getBody();
    $xmldata = new SimpleXMLElement($xmlEvents);



    foreach($xmldata->event as $eventData) {

        $eventID = trim($eventData['id']);
        $description = trim($eventData['description']);
        $minRepeatInterval = trim($eventData['minRepeatInterval']);
        $active = trim($eventData['active']);

剩下的我遇到了麻烦,我如何在触发器和动作标签中显示变量到我的php网站上?

<event>
<id>17730</id>
<description>lyset</description>
<minRepeatInterval>1800</minRepeatInterval>
<active>1</active>
<trigger method="1" deviceId="294445" id="18459" type="device" clientId="74144" />
<trigger minute="0" hour="9" id="18721" type="time" clientId="74144" />
<trigger method="1" deviceId="291896" id="19300" type="device" clientId="74144" />
<condition fromHour="7" fromMinute="0" toHour="23" toMinute="0" id="10361" type="time" group="8189" />
<action deviceId="291967" method="1" repeats="3" id="20846" type="device" delay="1" delayPolicy="restart" />

有人有答案吗? 安德烈亚斯

2 个答案:

答案 0 :(得分:0)

这些是属性,这是访问它们的一种方式:

echo $xml->trigger[0]['type'];

输出:

device

trigger[0]是选择第一个<trigger />,选择属性就像一个关联数组。

阅读手册:http://www.php.net/manual/en/simplexml.examples-basic.php

在行动中看到它:https://eval.in/88785

答案 1 :(得分:0)

如果这是XML的开始,则不应迭代event元素。尝试在foreach中使用$ xmldata-&gt; children()。

在此处查看示例:http://pl1.php.net/manual/en/simplexmlelement.children.php