簡體   English   中英

我需要幫助以表格形式顯示帶有PHP的XML文件

[英]I need help displaying an XML file with PHP in table form

我需要獲取XML文件的內容並將其顯示在表中。 由於它具有不同的級別,因此我需要將它作為表中的表中的一個表(初始樣式)。 現在這是棘手的部分,我需要的信息是屬性及其名稱,但是它們並不總是存在,而且我也不知道屬性的名稱。 我一直在嘗試使用無法成功使用foreach()的遞歸函數。 我一直在使用simplexml_load_file() ,然后可以打印內容,但不能以表格形式進行。 我最接近的解決方案是這樣的(只是一個例子):

for ($i = 0; $i <= 5 ; $i++){
    foreach($xml2->level_0[$i]->level_1[$j]->attributes() as $a => $b){
        echo $a . ' => ' . $b . '<br/>';
    }

我會很感激一些幫助,因為我似乎找不到足夠的信息。

完美的解決方案是在文件中運行的腳本,該腳本可以將信息顯示為表格,而無需關心標簽名稱或屬性名稱。 下面是XML文件外觀的示例。

<level_0 xmlns="http://www.google.com" EchoToken="185345732" MessageContentCode="1" Target="Production" TimeStamp="2015-06-01T06:40:21" Version="2.001">
    <level_1 ChainCode="HX" HotelCode="HXBASZZ">
        <level_2 BookingLimit="1" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="DD1" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="2" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="0" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="ED0" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="1" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="9" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="ED1" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="3" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="13" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="ED2" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="5" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="3" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="ED3" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="7" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="2" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="ET0" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="9" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="5" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="PD1" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="4" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="8" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="PD2" Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="6" ID_Context="16" />
        </level_2>
        <level_2 BookingLimit="4" BookingLimitMessageType="SetLimit">
            <level_3_1 End="2015-06-06" Fri="true" InvTypeCode="PD3"   Mon="true" Sat="true" Start="2015-06-06" Sun="true" Thur="true" Tue="true" Weds="true" />
            <level_3_2 ID="8" ID_Context="16" />
        </level_2>
    </level_1>
</level_0>

嘗試這個:

$xml = simplexml_load_file($file);

echo '<table>';

foreach($xml->level_1->level_2 as $item){

    echo '<tr>';

    $End = $item->level_3_1->attributes()->End->__toString();
    echo "<td>$End</td>";

    $InvTypeCode = $item->level_3_1->attributes()->InvTypeCode->__toString();
    echo "<td>$InvTypeCode</td>";

    echo '</tr>';

}

echo '</table>';

好-試試這個吧

$xml = simplexml_load_file($file);

echo '<table>';

foreach($xml->level_1->level_2 as $item){

    $level3 = $item->level_3_1->attributes();

    echo '<tr>';

    foreach($level3 as $name => $value){

        echo "<th>$name</th>";
        echo "<td>$value</td>";

    }

    echo '</tr>';

}

echo '</table>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM