-1

我正在尝试组合两个或多个 xml 文件以便更好地使用。假设我有两个 XML 文件,我想在将它们的数据提取到表中之前组合它们的内容。

<table id="rounded-corner">
    <tr>
            <th>Title</th>
            <th>Download Link</th>
            <th>Language</th>
    </tr>


<?php

        $xml_request_url = 'file.xml';
        $xml = new SimpleXMLElement($xml_request_url, null, true);



        foreach ( $xml->results->content as $item )
        {

        echo "


<tr><td>" . $item->movie . "</td><td><a href=" . $item->download . ">Download Link</a>    </td><td>" . $item->language . "</td></tr>
";

}

        ?> </table>

你能给我一个例子来说明如何做到这一点吗?我不想为我拥有的每个 XML 文件制作表格。

<find>
<base>
http://www.example.com
</base>
<results items="2" itemsfound="2">
<song>
  <downloadlink>
  http://example.com/dldlink.php?lk=43543
  </downloadlink>
  <format>
  mp3
  </format>
</song>
<song>
  <downloadlink>
  http://example.com/dldlink.php?lk=87798
  </downloadlink>
  <format>
  mp4
  </format>
 </song>
 </results>
 </find>
4

2 回答 2

2

您的问题实际上不是询问如何连接两个 XML 文件,而是更准确地说是如何从这两个文件中创建一个迭代器。这可以通过使用AppendIterator

<table id="rounded-corner">
    <tr>
            <th>Title</th>
            <th>Download Link</th>
            <th>Language</th>
    </tr>
<?php

    $content = new AppendIterator();
    $content->append(new IteratorIterator(simplexml_load_file('file1.xml')->results->content));
    $content->append(new IteratorIterator(simplexml_load_file('file2.xml')->results->content));
    foreach($content as $item)
    {
?>
    <tr>
        <td><?= $item->movie ?></td>
        <td><a href="<?= $item->download ?>">Download Link</a></td>
        <td><?= $item->language ?></td>
    </tr>
<?php
    }
?>
</table>
于 2012-05-16T13:22:55.873 回答
0

您可以将它们存储在中间数组中。例如:

$files = array('test1.xml','test2.xml');
$data = array();
foreach($files as $file)
{
 $xml = new SimpleXMLElement($xml_request_url, null, true);
 foreach($xml as $node)
   $data[] = $node;
}

然后使用您的 $data 数组获取所有值。

于 2012-05-16T13:18:04.740 回答