我在获取所有3个IMAGE元素的值时遇到问题,因为它们具有相同的名称。下面是我的xml提要
<FOUND>
<IMAGES>
<IMAGE>
<SMALL>images/small.jpg</SMALL>
<MED>images/med.jpg</MED>
<LARGE>images/large.jpg</LARGE>
<EXTRAL>images/extra.jpg</EXTRAL>
</IMAGE>
<IMAGE>
<SMALL>images1/small.jpg</SMALL>
<MED>images1/med.jpg </MED>
<LARGE>images1/large.jpg</LARGE>
<EXTRAL>images1/extra.jpg</EXTRAL>
</IMAGE>
<IMAGE>
<SMALL>images2/small.jpg</SMALL>
<MED>images2/med.jpg </MED>
<LARGE>images2/large.jpg</LARGE>
<EXTRAL>images2/extra.jpg</EXTRAL>
</IMAGES>
</FOUND>
我在php中编写了一个函数,它将返回第一个块。
function images($id){
$xml=simplexml_load_file("feed.xml");
foreach ($xml->FOUND->IMAGES as $image)
{
$imagearr[]=array(
'small'=>$image->IMAGE->SMALL,
'med'=>$image->IMAGE->MEDIUM,
'large'=>$image->IMAGE->LARGE,
'xl'=>$image->IMAGE-> EXTRAL,
);
}
return $imagearr;
}
如何获取所有3个IMAGE元素?我需要将返回值用于下面的html表
<table width="200" border="1">
<tr>
<td>small</td>
<td>medium</td>
<td>large</td>
</tr>
<tr>
<td>small</td>
<td>medium</td>
<td>large</td>
</tr>
<tr>
<td>small</td>
<td>medium</td>
<td>large</td>
</tr>
</table>
非常感谢任何帮助
答案 0 :(得分:3)
我会使用xPath返回一个数组。
试试这个:
$xml = simplexml_load_file('feed.xml');
$results = $xml->xpath('//IMAGE');
var_dump($results);
输出......
array(3) {
[0]=>
object(SimpleXMLElement)#2 (4) {
["SMALL"]=>
string(16) "images/small.jpg"
["MED"]=>
string(14) "images/med.jpg"
["LARGE"]=>
string(16) "images/large.jpg"
["EXTRAL"]=>
string(16) "images/extra.jpg"
}
[1]=>
object(SimpleXMLElement)#3 (4) {
["SMALL"]=>
string(17) "images1/small.jpg"
["MED"]=>
string(16) "images1/med.jpg "
["LARGE"]=>
string(17) "images1/large.jpg"
["EXTRAL"]=>
string(17) "images1/extra.jpg"
}
[2]=>
object(SimpleXMLElement)#4 (4) {
["SMALL"]=>
string(17) "images2/small.jpg"
["MED"]=>
string(16) "images2/med.jpg "
["LARGE"]=>
string(17) "images2/large.jpg"
["EXTRAL"]=>
string(17) "images2/extra.jpg"
}
}
然后,您可以使用类似
的内容迭代结果foreach($results as $row)
{
print $row->SMALL;
}
希望有所帮助
答案 1 :(得分:-1)
要坚持使用原始的PHP代码,你可以试试这样的东西:
$xml=simplexml_load_file("feed.xml");
$imagearr= array();
foreach ($xml->IMAGES->IMAGE as $image)
{
$imagearr[]=array(
'small'=>$image->SMALL,
'med'=>$image->MEDIUM,
'large'=>$image->LARGE,
'xl'=>$image->EXTRAL);
}
return $imagearr;