使用SimpleXML / PHP从XML访问元素/属性

时间:2012-03-29 13:47:06

标签: php xml simplexml

快速提问:我正在使用PHP的SimpleXML对象来解析XML文件。对于我的生活,我无法弄清楚如何访问特定元素。我的问题是我的PHP会如何访问节点以及“data”属性中包含的信息?我不想遍历整个文档,我只想要来自节点的特定信息。我尝试了以下但没有运气:

$ xml = simplexml_load_file(“myXML.xml”); echo $ xml-> weather [0] - > forecast_information-> city-> attributes() - > data。 “
”;

提前致谢。

<xml_api_reply version="1">

<weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0">

<forecast_information>
   <city data="Carlsbad, CA"/>
   <postal_code data="92009"/>
   <latitude_e6 data=""/>
   <longitude_e6 data=""/>
   <forecast_date data="2012-03-29"/>
   <current_date_time data="2012-03-29 11:52:00 +0000"/>
   <unit_system data="US"/>
</forecast_information>

<current_conditions>
   <condition data="Partly Cloudy"/>
   <temp_f data="62"/>
   <temp_c data="17"/>
   <humidity data="Humidity: 65%"/>
   <icon data="/ig/images/weather/partly_cloudy.gif"/>
   <wind_condition data="Wind: SW at 4 mph"/>
</current_conditions>


</weather>

</xml_api_reply>

1 个答案:

答案 0 :(得分:1)

你可以试试这个代码,我在这里测试一下:

$xml = new SimpleXMLElement(file_get_contents('xmltest.xml'));

var_dump($xml->weather->forecast_information->city);
echo ($xml->weather->forecast_information->city['data']);

像“data”这样的元素的属性可以作为数组访问。

注意:当您创建一个新对象时,您处于案例中的第一个注释

<xml_api_reply version="1">