简单的xml按特定顺序输出数据

时间:2012-01-30 15:04:05

标签: php xml simplexml

我希望这是一个简单的问题,但我无法在网上找到任何有用的信息。

我有一个xml文件:

<market id="27719037" name="Wolves v Leeds">
<participant name="home" id="121081062" odds="7/2"/>
<participant name="Draw" id="121081062" odds="7/2"/>
<participant name="away" id="121081062" odds="7/2"/>
</market>

<market id="27719037" name="Liverpool v Fulham">
<participant name="Draw" id="121081062" odds="7/2"/>
<participant name="home" id="121081062" odds="7/2"/>
<participant name="away" id="121081062" odds="7/2"/>
</market>

因为对于每个市场游戏,XML以不同的顺序输出,所以我不能仅仅依赖于按顺序输出它。

有没有办法可以指明:

回归赔率 提高赔率 离开赔率?

提前致谢

理查德

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$xml= simplexml_load_file('temp.xml');

$xmlarr = array();

$i=0;
foreach($xml as $market) {
foreach($market as $participant){
    $name =  (string)$participant['name'];
    //to store in pairs of 'home odds' 'draw odds' 'away odds'
    $xmlarr[$i][$name] = (string)$participant['odds'];

 }
    ++$i;    
  } 

现在你有$xmlarr数组,其结构如下所示:

array(2) {
  [0]=>
  array(3) {
    ["home"]=>
    string(3) "7/2"
    ["Draw"]=>
    string(3) "7/2"
    ["away"]=>
    string(3) "7/2"
  }
  [1]=>
  array(3) {
    ["Draw"]=>
    string(3) "7/2"
    ["home"]=>
    string(3) "7/2"
    ["away"]=>
    string(3) "7/2"
  }
}

您可以按照以下顺序访问它们:

foreach ($xmlarr as $element) {
 echo "home : ".$element ['home']."<br>";
 echo "Draw : ".$element ['Draw']."<br>";
 echo "away : ".$element ['away']."<br>"; 
 }

O / P

home : 7/2
Draw : 7/2
away : 7/2
home : 7/2
Draw : 7/2
away : 7/2

当您访问['home']时,您将获得与其相关的odd['Draw']&amp; ['away']