xml 导出 php 代码 returns 只有 xml 文件的一个父文件我需要它们

xml export php code returns only one parent of the xml file i need them all

    $rss_tags = array(
    'drawNo',
    'drawTime',
    'result',
    );
  $rss_item_tag = 'draw';
  $rss_url = "http://applications.opap.gr/DrawsRestServices/kino/drawDate/21-12-2014.xml";

  $rssfeed = rss_to_array($rss_item_tag,$rss_tags,$rss_url);


  echo '<pre>';
  print_r($rssfeed);

/*$total=1;
  foreach($rssfeed as $item)
        {
          if($total<750){
          echo '<div><h1>Κλήρωση: '.$item['drawNo']. '  Αριθμοί: ' .$item['result'].'</h1></div>';
          $total++;
          }
        }
*/

  function rss_to_array($tag, $array, $url) {
    $doc = new DOMdocument();
    $doc->load($url);
    $rss_array = array();
    $items = array();
    foreach($doc->getElementsByTagName($tag) AS $node) { //se auth thn epanalhpsh epanalamvenete toses fores oses oi klhrwseis tis hmeras
      foreach($array AS $key => $value) { //$array einai ta rss tags
          if($value=="result"){
            for($i=1;$i<=20;$i++){$items["result"] = $node->getElementsByTagName("result")->item(0)->nodeValue;}
          }
          $items[$value] = $node->getElementsByTagName($value)->item(0)->nodeValue;

      }
      array_push($rss_array, $items);
    }
    return $rss_array;
  }

你好 phpers,这是我阅读一些 xml 信息的代码,但我有一个很大很大的问题。

首先检查xml来源: http://applications.opap.gr/DrawsRestServices/kino/drawDate/21-12-2014.xml

结构是这样的:

<draws>
  <draw>
     <drawNo>
     <drawTime>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>
     <result>

和我的代码 returns 只是第一个条目,但我想同时获得这 20 个条目,有人可以帮助我吗?

我不确定你到底想输出什么,但这也许适合你的目的。

下面的代码将 xml 转换为数组。

<?php
$xmlstring = file_get_contents("http://applications.opap.gr/DrawsRestServices/kino/drawDate/21-12-2014.xml");

// converts $xmlstring to multidimensional array
$arrayMD = json_decode(json_encode((array) simplexml_load_string($xmlstring)), true);

echo "<pre>";
var_dump($arrayMD);
echo "</pre>";

// converts multidimensional array to one-dimensional array
// in other words: "flattens" a multidimensional array
$array = new RecursiveIteratorIterator(new RecursiveArrayIterator($arrayMD));
foreach($array as $v) {
  echo $v . "<br>";
}
?>

输出如下:

array(1) {
  ["draw"]=>
  array(157) {
    [0]=>
    array(3) {
      ["drawNo"]=>
      string(6) "475781"
      ["drawTime"]=>
      string(25) "2014-12-21T09:00:00+02:00"
      ["result"]=>
      array(20) {
        [0]=>
        string(1) "6"
        [1]=>
        string(1) "7"
        [2]=>
        string(2) "12"
        [3]=>
        string(2) "13"
        [4]=>
        string(2) "15"
        [5]=>
        string(2) "16"
...

参考:

更新:

要访问多维数组的某些特定元素:

$someVar = $arrayMD["draw"][0]["result"][7];
echo $someVar; // outputs: 12

此外,请查看 list function (assigns variables as if they were an array) or extract(将变量从数组导入当前交易品种 table)。

或者最简单的方法就是使用几个 foreach 来输出它们,对数字求和,select 每五个 "result" 每个 "draw" 的值或其他任何值. (这取决于您接下来要如何处理这些值。)