使用 PHP 从 API 编译 XML,如何使用 foreach 创建多个子节点



我正在使用一个文档记录不佳的API,为了使它与我正在使用的第三方程序兼容,有必要将其转换为定制的XML提要。

一些结果包含多个值,例如,图像节点包含一个图像节点,但可能有十个图像都需要驻留在自己的节点中。

我想使用foreach语句使用所需的 URL 填充每个子节点,但我所做的不起作用,因为我不知道所需的语法。

<?php
/* Set Content Type to XML and Charset to UTF-8 */
header( "content-type: application/xml; charset=utf-8" );
/* Create XML Document */
$xml = new DOMDocument( "1.0", "utf-8" );
/* Create Nodes */
$my_images = $xml->createElement( "images" );
$my_image = $xml->createElement( "image", foreach($property['gallery']['images'] as $image) { $image['url']['large'] } );

我的预期输出是:

<images>
<image>example.com/image1.png</image>
<image>example.com/image2.png</image>
<image>example.com/image3.png</image>
</images>

一切似乎都运行良好,直到我到达需要分解结果并使用 foreach 语句的节点。

编辑

想知道 foreach 循环是否可用于附加 Child?$my_images->appendChild( $my_image );

简短的回答:

<?php
/* Set Content Type to XML and Charset to UTF-8 */
header( "content-type: application/xml; charset=utf-8" );
$xml = new SimpleXMLElement('<images/>');
foreach($property['gallery']['images'] as $image) { 
$xml->addChild('image',$image['url']['large']);
}
print $xml->asXML();

结果为 :

<images>
<image>example.com/image1.png</image>
<image>example.com/image2.png</image>
<image>example.com/image3.png</image>
</images>

最新更新