结合两个XML和PHP
为了更好地使用,我正在尝试合并两个或多个xml文件。假设我有两个XML文件,我想在将它们的数据提取到一个表之前合并它们的内容结合两个XML和PHP,php,xml,merge,html-table,Php,Xml,Merge,Html Table,为了更好地使用,我正在尝试合并两个或多个xml文件。假设我有两个XML文件,我想在将它们的数据提取到一个表之前合并它们的内容 <table id="rounded-corner"> <tr> <th>Title</th> <th>Download Link</th> <th>Language</th> </t
<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>
标题
下载链接
语言
结果->内容作为$item)
{
回声“
“$item->movie。”“$item->language。”
";
}
?>
你能给我举个例子说明怎么做吗?我不想为我拥有的每个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>
http://www.example.com
http://example.com/dldlink.php?lk=43543
mp3
http://example.com/dldlink.php?lk=87798
mp4
您可以将它们存储在中间数组中。例如:
$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文件,而是更准确地说,如何从两个文件中创建一个迭代器。这可以通过使用:
标题
下载链接
语言
结果->内容);
$content->append(新迭代器(simplexml_load_file('file2.xml')->results->content));
foreach($content as$item)
{
?>
检查其他/可能的重复项它们是简单的xml,格式相同但不同content@showerhead:这个问题还没有回答。但是我知道这个问题以前已经被问过和回答过了,TS真的应该使用搜索来寻找答案。你们为什么对这个问题投反对票?这不一样。另一个帖子是ab在合并xml文件时,TS希望在同一个表中显示来自2个xml文件的数据。存在差异。可捕获的致命错误:参数1传递给AppendIterator::append()必须实现接口迭代器,/home/中给出的SimpleXMLElement实例。您能告诉我如何在您发布的代码上实现它吗?@user1040157:当然,请查看编辑。这很有效。确保从XML中选择正确的元素,这里的元素不是XML示例中的元素(验证标记名)。如何使用xpath查询结果?@Mehmet您可以首先合并两个文件,或者对两个文件应用相同的xpath,并从xpath结果创建迭代器(在xpath()上使用ArrayIterator
返回数组时返回值)
<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>