使用SimpleXML来获取嵌套代码

时间:2012-11-12 21:57:47

标签: php xml simplexml

  

可能重复:
  php simplexml issue in reading an attribute that has a ‘column - : ’ in its name

我正在学习PHP,所以我正在制作一个天气应用程序来显示基于天气的图像。我正在使用Yahoo Weather API。

我的问题是我正在寻找一种抓住the code of the weather, located next to yweather:condition 的方法。我发现simpleXML但是无法弄清楚如何抓住某些东西,就像Yahoo以

形式呈现xml的方式一样
<yweather:condition text="Fair" code="34" temp="37"

所以我的问题是如何获取Yahoo天气的 code =“34”部分并将其显示为$weathercode = 34;之类的变量?

感谢您提供的所有帮助,如果您需要,我可以提供更多详细信息!

另外,我不确定这篇文章的标题是否正确,如果不是,那就很抱歉!

2 个答案:

答案 0 :(得分:1)

您可以使用与下面类似的方式使用SimpleXMLElement :: attributes调用。

$string = {Yahoo Weather Feed}

$xml = simplexml_load_string($string);

$weathercode = $xml->channel->item->children('yweather', true)->condition[0]->attributes()->code;

你可能需要修补才能把它弄好,但这只是一个指南。

参考:http://php.net/manual/en/simplexmlelement.attributes.php

答案 1 :(得分:0)

您可以尝试以下方法:

$xml = simplexml_load_file('http://weather.yahooapis.com/forecastrss?w=12793465&u=f');
var_dump($xml);

这将加载URL并转储SimpleXML对象。

More on simplexml_load_file here