非常感谢有关如何实现以下结果的帮助 - 能够使用PHP代码段或任何方法将id
属性添加到<image>
标记。
<?xml version="1.0" encoding="utf-8"?>
<root>
<property>
<images>
<image id="1">
<url>http://www.mywebsite/image?id=1&.jpg</url>
</image>
<image id="2">
<url>http://www.mywebsite/image?id=2&.jpg</url>
</image>
</images>
</property>
</root>
答案 0 :(得分:1)
我想你想要创建xml上面的
$array = array(
"http://www.mywebsite/image?id=1&.jpg",
"http://www.mywebsite/image?id=2&.jpg"
);
header('Content-Type:text/plain');
$xml = new SimpleXMLElement("<root></root>");
$property = $xml->addChild('property');
$images = $property->addChild('images');
foreach($array as $link) {
parse_str(parse_url($link, PHP_URL_QUERY), $query);
$image = $images->addChild('image');
$image->addAttribute("id", $query['id']);
$url = $image->addChild("url", urlencode($link));
}
echo $xml->asXML();
答案 1 :(得分:0)
如果您正在阅读字符串,那么您可以循环<images>
并将id
属性添加到每个<image>
。
注意:由于您的网址中的&
,您的XML会出现错误,因此我为了一个有效的示例而使用&
替换了它们。
header('Content-Type:text/plain');
$xmlstring = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
<property>
<images>
<image>
<url>http://www.mywebsite/image?id=1&.jpg</url>
</image>
<image>
<url>http://www.mywebsite/image?id=2&.jpg</url>
</image>
</images>
</property>
</root>
XML;
$xml = simplexml_load_string($xmlstring);
foreach ($xml->property->images->image as $image)
{
parse_str(parse_url($image->url, PHP_URL_QUERY), $querystring);
$image->addAttribute("id", $querystring['id']);
}
echo $xml->asXML();
也可以通过读取XML文件而不是字符串来实现相同的方法:
$xml = simplexml_load_file('path/to/file.xml');