【问题标题】:parse complex xml with php [maybe 2 foreach loops]?用 php 解析复杂的 xml [也许是 2 个 foreach 循环]?
【发布时间】:2015-06-12 14:23:57
【问题描述】:
<Lineups date="2015-06-11">
<Game start_time="2015-06-11 09:10:00" number="901" revised="false">
<Team number="901" name="San Diego">
<Player name="Wil Myers" position="CF"/>
<Player name="Will Venable" position="LF"/>
<Player name="Matt Kemp" position="RF"/>
<Player name="Yonder Alonso" position="1B"/>
<Player name="Derek Norris" position="C"/>
<Player name="Cory Spangenberg" position="2B"/>
<Player name="Will Middlebrooks" position="3B"/>
<Player name="Alexi Amarista" position="SS"/>
<Player name="Andrew Cashner" position="P"/>
</Team>
</Game>
</Lineups>

我有这个 xml 文件,我想在 php 中解析它,以便在网站上显示它。

有多场比赛,每支球队都有多名球员。我必须在另一个 foreach 循环中使用一个 foreach 循环吗?

我想显示如下内容:

游戏[0]开始时间
名称团队[0] 玩家[0] 播放器[1] 播放器[2] ... 命名团队 [1]

比赛[1]开始时间
命名团队[0]
玩家[0]
...

谁能让我开始了解我应该如何开始我的 php 代码来解析这个 xml 文件?

【问题讨论】:

标签: php xml parsing


【解决方案1】:

以某种方式使用 simplexml

$str = '<Lineups date="2015-06-11">
<Game start_time="2015-06-11 09:10:00" number="901" revised="false">
<Team number="901" name="San Diego">
<Player name="Wil Myers" position="CF"/>
<Player name="Will Venable" position="LF"/>
<Player name="Matt Kemp" position="RF"/>
<Player name="Yonder Alonso" position="1B"/>
<Player name="Derek Norris" position="C"/>
<Player name="Cory Spangenberg" position="2B"/>
<Player name="Will Middlebrooks" position="3B"/>
<Player name="Alexi Amarista" position="SS"/>
<Player name="Andrew Cashner" position="P"/>
</Team>
</Game>
</Lineups>';

$xml = simplexml_load_string($str);

foreach ($xml->Game as $game) {
   echo "Game number " . $game['number'] . " start_time " . $game['start_time'] . "\n"; 
   foreach($game->Team as $team) {
     echo "  Team " . $team['name'] . " number " . $team['number'] . "\n";
     $players = array();
     foreach($team->Player as $player) $players[]  = $player['name'] . " ";  
     echo "    " . implode(", ", $players) . "\n"; 
   }
 } 

结果

Game number 901 start_time 2015-06-11 09:10:00
  Team San Diego number 901
    Wil Myers , Will Venable , Matt Kemp , Yonder Alonso , Derek Norris , Cory Spangenberg , Will Middlebrooks , Alexi Amarista , Andrew Cashner 

【讨论】:

  • 你是最棒的!感谢您的帮助!
猜你喜欢
  • 2015-02-26
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多