繁体   English   中英

如何使用PHP将数组xml数据放入表中?

[英]How to put array xml data into the table with PHP?

我需要一些PHP代码的帮助。 我想把我用这个查询得到的数组XML数据放到表中。

你能帮帮我吗?

我的PHP与XML代码如下所示:

<?php
$xml = '
xml version = "1.0" encoding = "utf-8"
<tutorialspoint>
    <course category = "JAVA">
        <title lang = "en">Java</title>
        <tutor>Gopal</tutor>
        <duration>3</duration>
        <price>$30</price>
    </course>
    <course category = "HADOOP">
        <title lang = "en">Hadoop</title>.
        <tutor>Satish</tutor>
        <duration>3</duration>
        <price>$50</price>
    </course>
    <course category = "HTML">
        <title lang = "en">html</title>
        <tutor>raju</tutor>
        <duration>5</duration>
        <price>$50</price>
    </course>
    <course category = "WEB">
        <title lang = "en">Web Technologies</title>
        <tutor>Javed</tutor>
        <duration>10</duration>
        <price>$60</price>
    </course>
</tutorialspoint>';

$arr = [];
$array = json_decode(json_encode((array)simplexml_load_string($xml)),true);
foreach($array as $key => $val){
    foreach($val as $key1 => $val1) {
        echo '<hr>';
        echo $key1;
        foreach($val1 as $key2 => $val2) {
            echo $key2 . ' --- ' . $val2;
            echo '<br>';

        }
    }
}

任何人都知道如何将PHP数组XML数据放入表格格式。 我想要数组XML输出表,如下面的示例格式图片:

在此输入图像描述

谢谢你的帮助! 祝你有个愉快的一天!

你可以去<table>

<?php
$xml = '<?xml version = "1.0" encoding = "utf-8"?>
<tutorialspoint>

<course category = "JAVA">
  <title lang = "en">Java</title>
  <tutor>Gopal</tutor>
  <duration>3</duration>
  <price>$30</price>
</course>

<course category = "HADOOP">
  <title lang = "en">Hadoop</title>.
  <tutor>Satish</tutor>
  <duration>3</duration>
  <price>$50</price>
</course>

<course category = "HTML">
  <title lang = "en">html</title>
  <tutor>raju</tutor>
  <duration>5</duration>
  <price>$50</price>
</course>

<course category = "WEB">
  <title lang = "en">Web Technologies</title>
  <tutor>Javed</tutor>
  <duration>10</duration>
  <price>$60</price>
</course>
</tutorialspoint>';


$arr = [];
$array = json_decode(json_encode(simplexml_load_string($xml)),true);
if ( ! empty($array['course'])) {
    $fields = array_keys($array['course'][0]);
    unset($fields[0]);
    $fields = array_values($fields);
 $i=0;
?>
<table border="1">
<?php    if (! empty($fields)) { ?>
<tr>
<?php    foreach ($fields as $field) { ?>
<td><?php echo $field;?></td>
<?php  }    ?>
</tr>
<?php    }
if (! empty($array['course'])) {
     foreach ($array['course'] as $elem) {
     unset($elem['@attributes']);
?>
<tr>
<?php    foreach ($elem as $k => $v) { ?>
<td><?php echo $v;?></td>
<?php  }    ?>
</tr>
<?php
        }
    }
}
?>

输出:

<table border="1">
<tr>
    <td>title</td>
    <td>tutor</td>
    <td>duration</td>
    <td>price</td>
</tr>
<tr>
    <td>Java</td>
    <td>Gopal</td>
    <td>3</td>
    <td>$30</td>
</tr>
<tr>
    <td>Hadoop</td>
    <td>Satish</td>
    <td>3</td>
    <td>$50</td>
</tr>
<tr>
    <td>html</td>
    <td>raju</td>
    <td>5</td>
    <td>$50</td>
</tr>
<tr>
    <td>Web Technologies</td>
    <td>Javed</td>
    <td>10</td>
    <td>$60</td>
</tr>

工作演示:

简单的代码

$array = json_decode(json_encode((array)simplexml_load_string($xml)),true);

你只需要从你的数组中获取课程数据然后一个简单的foreach来创建一个HTML表,尝试下面的代码在这里检查这个在线样本OUTPUT 在此输入图像描述

<?php
$xml = '<?xml version="1.0" encoding="UTF-8"?>
<tutorialspoint>
    <course category = "JAVA">
        <title lang = "en">Java</title>
        <tutor>Gopal</tutor>
        <duration>3</duration>
        <price>$30</price>
    </course>
    <course category = "HADOOP">
        <title lang = "en">Hadoop</title>.
        <tutor>Satish</tutor>
        <duration>3</duration>
        <price>$50</price>
    </course>
    <course category = "HTML">
        <title lang = "en">html</title>
        <tutor>raju</tutor>
        <duration>5</duration>
        <price>$50</price>
    </course>
    <course category = "WEB">
        <title lang = "en">Web Technologies</title>
        <tutor>Javed</tutor>
        <duration>10</duration>
        <price>$60</price>
    </course>
</tutorialspoint>';


$array = json_decode(json_encode((array)simplexml_load_string($xml)),true);
$array = $array['course'];
?>
<table border="1">
    <thead>
        <tr>
            <td>Title</td>
            <td>Tutor</td>
            <td>Duration</td>
            <td>Price</td>
        </tr>
    </thead>
    <tbody>
<?php
foreach($array as $key => $val){

    echo "<tr>
              <td>".$val['title']."</td>";
        echo "<td>".$val['tutor']."</td>";
        echo "<td>".$val['duration']."</td>";
        echo "<td>".$val['price']."</td>
         </tr>";

}
?>
    </tbody>
</table>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM