Как разобрать данные из XML в таблицу и заставить ее обновлять изменения в реальном времени

0

Я наткнулся на какую-то проблему, и я надеюсь, что смогу получить какую-то помощь/указатель здесь, как ее преодолеть.
У меня есть внешний XML файл, который мне нужно проанализировать и отобразить в таблице. Я сделал это. Проблема в том, что файл обновляется каждую секунду, поэтому я хотел бы, чтобы данные в ячейках также обновляли "живые", в соответствии с изменениями в XML файле.
Проблема в том, что я не знаю, что я должен использовать для этого. Может кто-нибудь указать мне в правильном направлении.

<?php
require('simple_html_dom.php');
$html = file_get_html('http://admin:[email protected]/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>
Теги:
parsing

2 ответа

0

Считаете ли вы интерфейсной платформой, как angularJs, которая поддерживает привязку данных? Связывание данных невероятно мощное, и я чувствую, что это будет идеальным решением для вашей проблемы. Здесь показано быстрое видео.

Вы можете привязать таблицу вывода к переменной, которая представляет эти данные, которая обновляется каждую секунду в соответствии с xml.

0

Если вы не хотите изменять логику самой страницы... как все делаете с помощью javascript. Вы можете просто поставить:

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

метатег в вашем HTML... тогда браузер обновит страницу каждые X секунд (это значение CONTENT).

Это простейшее решение для текущей ситуации.

Но я настоятельно рекомендую сделать это с помощью JavaScript. Там множество фреймворков, которые сделают для вас тяжелые вещи.

Мой личный фаворит: VueJS

  • 0
    Я рад изменить весь код, если это заставит его работать. На данный момент я просто застрял и не уверен, куда идти с этим. <br> Я не могу обновить всю страницу. Мне нужны только ячейки (данные в них) для обновления (обновления).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню