在php中为嵌套的xml数据属性提供id

时间:2013-01-24 18:31:50

标签: php xml variables simplexml

我有一个我正在导入的数据源有一堆“市场”,我希望有一个主页面显示所有市场,所以对于那个id使用foreach循环来完成数据和每个市场上市。

每个市场都有一堆属性以及嵌套的参与者,我想为每个市场制作一个页面,显示每个参与者的一些信息。

因此用户将导航到index.php> event.php?ID101

这是我被卡住了,我怎样才能将用户发送到正确的页面,我正在考虑使用

<?php 

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


  foreach($xml->response->williamhill->class->type->market as $event) {
    $event_attributes = $event->attributes();
    echo "<tr>";

      // EVENT NAME WRAPPED IN LINK TO EVENT
      echo "<td>";
        echo '<a href="event.php?id=' . $market_id . '">';
            echo $event_attributes['name'];
        echo "</a>";
      echo"</td>";

      // DATE
      echo "<td>";
        echo $event_attributes['date'];
      echo "</td>";

    echo "</tr>";
  } 
?>

但是如何设置var $market_id(来自xml Feed)添加到网址的末尾,以便将其发送到正确的页面?

(f1_feed.xml与live xml feed相同,只是本地用于开发)

我正在使用的Feed是http://whdn.williamhill.com/pricefeed/openbet_cdn?action=template&template=getHierarchyByMarketType&classId=5&marketSort=HH&filterBIR=N

我使用simplexml

引入

1 个答案:

答案 0 :(得分:1)

这对我有用;

$xml = simplexml_load_file("openbet_cdn.xml");
foreach($xml->response->williamhill->class->type->market as $market) {
    // that gives an object (native)
    $market_attributes = $market->attributes();
    printf("<a href=\"event.php?id=%s\">%s</a>\n", 
                $market_attributes->id, 
                $market_attributes->name);
    // that gives an array (useless way!)
    // $market_attributes = (array) $market->attributes();
    // printf("<a href=\"event.php?id=%s\">%s</a>\n", 
                // $market_attributes['@attributes']['id'], 
                // $market_attributes['@attributes']['name']);
}