【问题标题】:Create table in php using xml data使用xml数据在php中创建表
【发布时间】:2012-09-23 18:54:11
【问题描述】:

我需要在表中创建结果表。

<?php
$string = '<?xml version="1.0" encoding="utf-8"?>
<books>
<book isbn="978-1594489501">
<title>book Title 1</title>
<author>Author 1</author>
<publisher>publisher 1</publisher>
<price>price 1</price>
<genre>English 1</genre>
</book>
<book isbn="978-1594489502">
<title>book Title 2</title>
<author>Author 2</author>
<publisher>publisher 2</publisher>
<price>price 2</price>
<genre>English 2</genre>
</book>
</books>';
$xml = new SimpleXMLElement($string);
$string = 'book';
$result = $xml->xpath("//book[contains(translate(title,
'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), '".strtoupper($string)."')]"); 
foreach($result as $one){
echo "<table border='1' width='500'>\n";
echo "<tr><th>Title</th><td>$one->title</td></tr>\n";
echo "<tr><th>Author</th><td>$one->author</td></tr>\n";
echo "<tr><th>Publisher</th><td>$one->publisher</td></tr>\n";
echo "<tr><th>Price</th><td>$one->price</td></tr>\n";
echo "<tr><th>Genre</th><td>$one->genre</td></tr>\n";
echo "</table>\n";  
}
?>

在 HTML 代码中像这样

结果 1 标题:标题 1 作者:作者1 发布:发布 1 价格:价格1 类型:英语1 结果 2 标题:标题 2 作者:作者2 发布:发布2 价格:价格2 类型:英语2 结果 3 标题:标题 3 作者:作者3 发布:发布 3 价格:价格3 类型:英语3 结果 4 标题:标题 4 作者:作者4 发布:发布4 价格:价格4 类型:英语4 结果 5 标题:标题 5 作者:作者5 发布:发布5 价格:价格5 类型:英语5 结果 6 标题:标题 6 作者:作者6 发布:发布6 价格:价格6 类型:英语6

【问题讨论】:

  • 您的问题究竟*是什么?
  • 我已经更新了链接中的代码。 jsfiddle.net/KBe3v。是否可以在一行中设置没有结果。
  • 抱歉结果更新代码链接:jsfiddle.net/CJY4Q
  • 我需要在表中创建结果表。在 HTML 代码中像这样jsfiddle.net/CJY4Q Row1-> Result1 Result2 Result3 Row2-> Result4 Result5 Result6 Row3-> Result7 Result8 Result9

标签: php html xml


【解决方案1】:

我一直使用 xml2array 进行一些简单的 XML 到 PHP 数组的转换。

http://www.bin-co.com/php/scripts/xml2array/

它有很多选择,而且很容易使用。我不知道它对其他库的效率如何,但它总是为我完成小型项目的工作。

【讨论】:

    【解决方案2】:

    这样的?

        echo "<table border='1' width='500'>\n";
    
        foreach($result as $one){
    
            echo "
            <tr>
                <th>Title</th>
                <th>Author</th>
                <th>Publisher</th>
                <th>Price</th>
                <th>Genre</th>
            </tr>";
    
            echo "<tr>";
            echo "<td>$one->title</td>";
            echo "<td>$one->author</td>";
            echo "<td>$one->publisher</td>";
            echo "<td>$one->price</td>";
            echo "<td>$one->genre</td>";
            echo "</tr>";
    
        }
    
        echo "</table>\n";
    

    【讨论】:

    • 嗨韦恩惠蒂。谢谢你的支持。我是这个论坛的新手。我将为结果页面上传图片。因为我无法描述表格格式。
    • 我需要在表中创建结果表。在 HTML 代码中像这样jsfiddle.net/CJY4Q Row1-> Result1 Result2 Result3 Row2-> Result4 Result5 Result6 Row3-> Result7 Result8 Result9
    • 我要说谢谢您对韦恩·惠蒂和斯宾塞·夏基的支持。再次感谢您。
    【解决方案3】:

    你必须使用类似下面的东西:

    echo '<table border="1" bordercolor="FFCC00" style="background-color:FFFFCC" width="600" cellpadding="3" cellspacing="3">';
    echo '<tr>';
    $i = 1;
    foreach($result as $one){
        echo '<td>';
        echo '<table>';
        echo '<tr><th>Result </th><td>'.$i.'</td></tr>';
        echo '<tr><th>Title: </th><td>'.$i.'</td></tr>';
        echo '<tr><th>Author: </th><td>'.$i.'</td></tr>';
        echo '<tr><th>Publish: </th><td>'.$i.'</td></tr>';
        echo '<tr><th>Price: </th><td>'.$i.'</td></tr>';
        echo '<tr><th>Genre: </th><td>'.$i.'</td></tr>';
        echo '</table>';
        echo '</td>';
        if ($i%3==0) echo '</tr><tr>';
    }
    echo '</table>';
    

    【讨论】:

    • 您能否建议我使用该代码。我收到语法错误,意外的“$i”。
    • PHPBugs 先生真是太棒了。脱掉你的工作。在您的支持下,我得到了结果页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 2015-09-15
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多