如何将xml中的数据解析为表并使其更新实时更改

时间:2014-11-11 16:21:14

标签: php xml parsing

我偶然发现了一个问题,我希望我能在这里得到一些帮助/指针如何克服它。
我有一个外部xml文件,我需要解析并显示在表中。我这样做了 问题是文件每秒都在更新,所以我希望单元格中的数据也可以根据xml文件中的更改进行“实时”更新。
问题是我不知道应该用它来做什么。任何人都可以指出我正确的方向。

<?php
require('simple_html_dom.php');
$html = file_get_html('http://admin:admin@192.168.1.108/status.xml');
foreach($html->find('response') as $row) {
     $frontdoorlock = $row->find('led1',0)->plaintext;
     $reardoorlock = $row->find('led2',0)->plaintext;
     $fronthandle = $row->find('btn0',0)->plaintext;
     $frontdoor = $row->find('btn1',0)->plaintext;
     $rearhandle = $row->find('btn2',0)->plaintext;
     $reardoor = $row->find('btn3',0)->plaintext;
     $temperature = $row->find('temp0',0)->plaintext;
     $humidity = $row->find('humid0',0)->plaintext;
     $currentdate = $row->find('temp2',0)->plaintext;
     $lastpowered = $row->find('temp3',0)->plaintext;
}  
?>
<div>
            <table>
                <tr>
                    <td>
                        Cabinet Name
                    </td>
                    <td >
                        Front Door Lock
                    </td>
                    <td>
                        Front Handle
                    </td>
                    <td>
                        Front Door
                    </td>
                    <td>
                        Rear Door Lock
                    </td>
                    <td>
                        Rear Handle
                    </td>
                    <td>
                        Rear Door
                    </td>
                    <td>
                        Temperature
                    </td>
                    <td>
                        Humidity
                    </td>
                    <td>
                        Current Date
                    </td>
                    <td>
                        System Last Powered
                    </td>
                </tr>
                <tr>
                    <td>
                        Cab1
                    </td>
                    <td >
                        <?php if($frontdoorlock == "0") echo "CLOSED";
                              else echo "OPEN";
                        ?>
                    </td>
                    <td>
                        <?php if($fronthandle == "0") echo "CLOSED";
                              else echo "OPEN";
                        ?>
                    </td>
                    <td>
                        <?php if($frontdoor == "0") echo "OPEN";
                              else echo "CLOSED";
                        ?>
                    </td>
                    <td>
                        <?php if($reardoorlock == "0") echo "CLOSED";
                              else echo "OPEN";
                        ?>
                    </td>
                    <td>
                        <?php if($rearhandle == "0") echo "CLOSED";
                              else echo "OPEN";
                        ?>
                    </td>
                    <td>
                        <?php if($reardoor == "0") echo "OPEN";
                              else echo "CLOSED";
                        ?>
                    </td>
                    <td>
                        <?php echo $temperature; ?>
                    </td>
                    <td>
                        <?php echo $humidity; ?>
                    </td>
                    <td>
                        <?php echo $currentdate ?>
                    </td>
                    <td>
                        <?php echo $lastpowered ?>
                    </td>
               </tr>

2 个答案:

答案 0 :(得分:0)

您是否考虑过像angularJs这样支持数据绑定的前端框架?数据绑定非常强大,我觉得它将是您问题的完美解决方案。这是一个快速video demonstrating it

您可以将输出表绑定到表示该数据的变量,该数据根据XML每秒更新一次。

答案 1 :(得分:0)

如果你不想改变页面本身的逻辑......就像用javascript做所有事情一样。你可以简单地把:

<META HTTP-EQUIV="refresh" CONTENT="15">

HTML中的元标记...然后浏览器将每X秒更新一次页面(即CONTENT值)。

这是目前情况下最简单的解决方案。

但我强烈建议用JavaScript做这件事。有很多框架可以帮助你解决困难。

我个人最喜欢的:VueJS