Вывод xml в виде таблицы через PHP

128
03 октября 2019, 04:00

Есть код, он парсит XML файл и выводит из него информацию, сейчас это выглядит вот так

Но я пытаюсь переделать вывод, чтобы он выводит в виде таблицы, то есть BOOK, Author и так далее были заголовками в таблице, а все остальное выводилось уже под ними. Подскажите, пожалуйста, как это можно реализовать?

<?php
    $xml = simplexml_load_file("books.xml");
    echo "<h2>".$xml->getName()."</h2><br />";
    foreach($xml->children() as $book)
    {
        echo "BOOK : ".$book->attributes()->id."<br />";
        echo "Author : ".$book->author." <br />";
        echo "Title : ".$book->title." <br />";
        echo "Genre : ".$book->genre." <br />";
        echo "Price : ".$book->price." <br />";
        echo "Publish Date : ".$book->publish_date." <br />";
        echo "Description : ".$book->description." <br />";
        echo "<hr/>";
    }
?>

Это books.xml

<?xml version="1.0" encoding="UTF-8"?>
    <catalog>
       <book id="bk101">
          <author>Gambardella, Matthew</author>
          <title>XML Developer's Guide</title>
          <genre>Computer</genre>
          <price>44.95</price>
          <publish_date>2000-10-01</publish_date>
          <description>An in-depth look at creating applications
          with XML.</description>
       </book>
       <book id="bk102">
          <author>Ralls, Kim</author>
          <title>Midnight Rain</title>
          <genre>Fantasy</genre>
          <price>5.95</price>
          <publish_date>2000-12-16</publish_date>
          <description>A former architect battles corporate zombies,
          an evil sorceress, and her own childhood to become queen
          of the world.</description>
       </book>
    </catalog>
Answer 1

В самом простом виде можно сделать так:

$file = '<?xml version="1.0" encoding="UTF-8"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer\'s Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications
      with XML.</description>
   </book>
   <book id="bk102">
      <author>Ralls, Kim</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
      <description>A former architect battles corporate zombies,
      an evil sorceress, and her own childhood to become queen
      of the world.</description>
   </book>
</catalog>';
$xml = simplexml_load_string($file);
echo '<table>
        <thead>
        <tr>
            <th>BOOK</th>
            <th>Author </th>
            <th>Title </th>
            <th>Genre </th>
            <th>Price </th>
            <th>Publish Date </th>
            <th>Description </th>
        </tr>
        </thead>
        <tbody>';
foreach($xml->children() as $book){
    echo "<tr>
            <td>".$book->attributes()->id."</td>
            <td>$book->author</td>
            <td>$book->title</td>
            <td>$book->genre</td>
            <td>$book->price</td>
            <td>$book->publish_date</td>
            <td>$book->description</td>
          </tr>";
}
echo '</tbody></table>';
READ ALSO
Сложение вычитание переполнение C++

Сложение вычитание переполнение C++

Как можно выполнить + и получить переполнение? делать какую-то условную конструкцию для этого странно тк

99
lz4 чем отличаются методы сжатия и какой лучше выбрать?

lz4 чем отличаются методы сжатия и какой лучше выбрать?

Ранее как то задавался вопросом о том, когда стоит использовать lz4 для передачи данных между клиентом и сервером (для игры)В итоге, пришли...

160
Программа удаляющая комментарии C++ [закрыт]

Программа удаляющая комментарии C++ [закрыт]

"Напишите программу, которая удаляет все комментарии из программы на С++Это значит,надо читать символы из cin и удалять комментарии двух видов:...

135
Как заблокировать создание файла?

Как заблокировать создание файла?

Нужно написать драйвер блокировать создание файла, пробую через Minifilter, но ничегоПолучается видеть только мониторинг процессов (создание,...

130