【问题标题】:Reading several elements from an XML feed with '-' in the element names从元素名称中带有“-”的 XML 提要中读取多个元素
【发布时间】:2011-05-10 07:39:59
【问题描述】:

我正在尝试读取名称中带有“-”的 XML 元素。可以在http://forecast.weather.gov/MapClick.php?lat=42.19774&lon=-121.81797&FcstType=dwml 找到提要。在我的最后一个问题中,我只是想阅读其中的任何一个。 reading a XML feed with '-' in some of the element names现在我正在尝试阅读一个特定的(除了第一个),我又被难住了。

这将为我提供第一个时间布局和第一个开始有效时间。

$time = $xml->data->{'time-layout'}->{'start-valid-time'};

我在第二个时间布局之后,我想通读 start-valid-time 元素的属性。

下面是我发现的一种可行的方法。我在下面所做的并不是解决此问题的正确方法。一个人通常应该怎么做呢?

谢谢。

     $time = $xml->data->{'time-layout'};
     $time2= $time[1]->{'start-valid-time'};
     $count= 14;
      for ($i = 0; $i <=$count ; $i++)
      {
         echo $time2[$i]->attributes();
         print "<br>\n";
      }

【问题讨论】:

    标签: php xml feed


    【解决方案1】:

    你做的是正确的。你可以缩短为

    $dwml = simplexml_load_file('http://…');
    foreach ($dwml->data->{'time-layout'}[1]->{'start-valid-time'} as $time) {
        echo $time;
    }
    

    或使用 XPath

    $dwml = simplexml_load_file('http://…');
    foreach ($dwml->xpath('/dwml/data/time-layout[2]/start-valid-time') as $time) {
        echo $time;
    }
    

    【讨论】:

      【解决方案2】:

      为这种类型的查询发明了XPath

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2010-12-20
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多