0

XML に基づいて動的テーブルを作成しようとしています。出力される XML は次のとおりです。

<tickets xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <status>1</status>
    <message>
        <ticketpage>
            <ticket>
                <row1>0-10-27-30-45-0-0-0-80</row1>
                <row2>0-15-0-38-0-51-62-0-85</row2>
                <row3>5-0-0-37-0-57-60-77-0</row3>
            </ticket>
            <ticket>
                <row1>0-0-20-33-0-56-68-0-90</row1>
                <row2>8-0-0-0-49-0-64-71-84</row2>
                <row3>1-18-22-32-0-59-0-0-0</row3>
            </ticket>
            <ticket>
                <row1>0-0-23-0-47-58-67-0-86</row1>
                <row2>4-16-0-0-43-53-0-0-88</row2>
                <row3>3-0-28-35-0-0-65-72-0</row3>
            </ticket>
            <ticket>
                <row1>0-19-26-0-48-52-0-74-0</row1>
                <row2>0-0-21-0-40-0-63-75-82</row2>
                <row3>9-11-0-34-41-0-0-76-0</row3>
            </ticket>
            <ticket>
                <row1>0-12-29-36-44-0-0-78-0</row1>
                <row2>6-14-0-39-0-0-69-0-89</row2>
                <row3>2-0-0-0-0-54-66-70-81</row3>
            </ticket>
            <ticket>
                <row1>0-17-25-0-46-0-0-73-87</row1>
                <row2>0-0-24-0-42-50-61-79-0</row2>
                <row3>7-13-0-31-0-55-0-0-83</row3>
            </ticket>
        </ticketpage>
    </message>
</tickets>

各「チケット」は新しいテーブルであり、各「行」は行であり、行内の各数字は列です (空のセルになる 0 を除く)。

PHP の SimpleXML を使用する必要があることはわかっていますが、方法がわかりません。

どうすればこれを行うことができますか?

4

2 に答える 2

1

これを試すことができます:

<?php
$str = '<tickets xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <status>1</status>
            <message>
                <ticketpage>
                    <ticket>
                        <row>0-10-27-30-45-0-0-0-80</row>
                        <row>0-15-0-38-0-51-62-0-85</row>
                        <row>5-0-0-37-0-57-60-77-0</row>
                    </ticket>
                </ticketpage>
            </message>
        </tickets>';
$dom = new SimpleXMLElement($str);
foreach ($dom->message->ticketpage->ticket as $ticket) {
    echo '<table border=1>';
    foreach($ticket->row as $row){
        $cellList = explode('-',$row);
        echo '<tr>';
        foreach ($cellList as $cell){
            echo '<td>', $cell, '</td>';
        }
        echo '</tr>';
    }
    echo '</table>';
}
于 2013-06-08T09:44:44.897 に答える