2012-11-14 26 views
1

我一直在试图建立一个foreach循环,将让每一个ListingId从XML文件,但由于某种原因,我只能得到一个“身份证”创建多个XML元素一个foreach阵列

XML结构:

<List> 
    <Listing> 
     <ListingId></ListingId> 
</Listing> 
    <Listing> 
     <ListingId></ListingId> 
</Listing> 
    <Listing> 
     <ListingId></ListingId> 
</Listing> 
</List> 

PHP:

$xml = simplexml_load_file("domain.co.nz/xml.xml"); 

     foreach($xml->List->Listing->ListingId as $value) 
     { 

      $xmlArray[] = $value; 
     } 
+0

我假设你使用SimpleXML从你的不完整的代码。这也值得包括这些线路。而且,尽管有这个名字,但对于任何非平凡的XML处理,“SimpleXML”最终都不如DOM简单。你会更好地学习如何使用DOM来代替。 – rdlowrey

+0

尝试列表:foreach($ xml-> List),如果$ value是树对象,您正在解析它,但您需要有其他嵌套的forcycles。不知道这是否是最好的方式。但很好想象。 –

+0

@rdlowrey我已经包括了我的唯一的SimpleXML代码行 –

回答

1
<?php 
$xml = '<List> 
    <Listing> 
     <ListingId>12</ListingId> 
</Listing> 
    <Listing> 
     <ListingId>13</ListingId> 
</Listing> 
    <Listing> 
     <ListingId>14</ListingId> 
</Listing> 
</List>'; 


$xml = simplexml_load_string($xml); 
$arr = array(); 

foreach($xml->Listing as $value) 
{ 
    $arr[] = intval($value->ListingId); 
} 

print_r($arr); //Array ([0] => 12 [1] => 13 [2] => 14) 
+0

David如何从外部文件 –

+0

和你一样。这只是一个方便的举动,我可以在不创建xml文件的情况下对其进行测试。只要坚持'$ xml = simplexml_load_file(“domain.co.nz/xml.xml”);'这是完全一样的,但是来自一个文件。 –

+0

感谢大卫,我已经复制和你的代码,我所得到的是一个'Array()' –