Вопрос по merge, xml, php, html-table – Объединить два XML PHP
Я пытаюсь объединить два или более 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>
это простой xml, одинаковый формат, но разный контент
user1040157
Как эти 2 выглядят?
TJHeuvel
@showerhead: На этот вопрос еще нет ответа. Однако я знаю, что этот вопрос задавался и отвечался ранее, TS должен действительно использовать поиск ответа.
hakre
Это не то же самое. Другой пост о слиянии файлов XML, TS хочет отобразить данные из двух файлов XML в той же таблице. Есть разница.
TJHeuvel
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>
Исправляемая фатальная ошибка: аргумент 1, переданный AppendIterator :: append (), должен реализовывать интерфейс Iterator, экземпляр SimpleXMLElement, указанный в / home /
user1040157
я попробую прямо сейчас
user1040157
Можете ли вы показать мне, как это сделать с кодом, который вы опубликовали, пожалуйста?
user1040157
Вы можете хранить их в промежуточном массиве. Например:
$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, чтобы получить все значения.
Похожие вопросы
это простой xml, одинаковый формат, но разный контент
Как эти 2 выглядят?
@showerhead: На этот вопрос еще нет ответа. Однако я знаю, что этот вопрос задавался и отвечался ранее, TS должен действительно использовать поиск ответа.
Проверьте это другое<a href="http://stackoverflow.com/questions/6385666/merge-two-xml-files-recursively">post</a> / возможно дубликат
Это не то же самое. Другой пост о слиянии файлов XML, TS хочет отобразить данные из двух файлов XML в той же таблице. Есть разница.