2013-01-24 44 views
0

我只是想在一个PHP foreach循环显示下列XML记录,XML到PHP渲染不工作

<?xml version="1.0" encoding="utf-8"?> 

<Node> 
    <game_takes> 
    <game_take> 
     <id type="System.String">0</id> 
     <name type="System.String">take1</name> 
    </game_take> 
    <game_take> 
     <id type="System.String">1</id> 
     <name type="System.String">take2</name> 
    </game_take> 
    <game_take> 
     <id type="System.String">2</id> 
     <name type="System.String">take3</name> 
    </game_take> 
    <game_take> 
    <id type="System.String">3</id> 
    <name type="System.String">take4</name> 
    </game_take> 
    </game_takes> 
</Node> 

我一直在努力为

$grabme = simplexml_load_file('gamecast.xml'); 

    foreach ($grabme->game_take as $key) { 

    echo $key['name']; 

    } 

没有什么是似乎喜欢工作,任何人都可以帮我一把吗?

+0

请选择答案。看起来至少有一个帮助你解决了你的问题。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – hakre

回答

0

的SimpleXML加载XML,如果它是一个数组,用$ OBJ保存XML对象为表示根节点。尝试

foreach($grabme->game_takes as $take) { 
          ^----note the S 
    echo $take->name 

改为。

+0

我收到一个空数组当我使用'的var_dump($ take->名);' – Yoosuf

+0

和排序,谢谢你给我一个解决方案的路径。 – Yoosuf

+0

并将该溶液是' 的foreach($ grabme-> game_takes-> game_take为$键){ 回波($键 - >名); }' – Yoosuf

1

呦需要继续foreach链接;

$xml = simplexml_load_file("xml.xml"); 
foreach ($xml->game_takes->game_take as $game_take) { 
    $game_take_id_attributes = $game_take->id->attributes(); 
    // remember string typecast 
    echo (string) $game_take->id ."\n"; 
    echo (string) $game_take_id_attributes->type ."\n"; 
    // and so on ... 
}