Php 从多级标记的xml中提取数据

Php 从多级标记的xml中提取数据,php,xml,Php,Xml,我在从多标签xml文件检索数据时遇到问题。 下面是一个xml示例: <forecast5day> <city>Өлгий</city> <data> <weather> <date>2018-10-27</date> <temperatureNight>-7</temperatureNight> <temperatu

我在从多标签xml文件检索数据时遇到问题。 下面是一个xml示例:

 <forecast5day>
     <city>Өлгий</city>
     <data>
     <weather>
      <date>2018-10-27</date>
      <temperatureNight>-7</temperatureNight>
      <temperatureDay>7</temperatureDay>
      <phenoIdNight>7</phenoIdNight>
      <phenoNight>Багавтар үүлтэй</phenoNight>
      <phenoIdDay>5</phenoIdDay>
      <phenoDay>Багавтар үүлтэй</phenoDay>
      <windNight>5</windNight>
      <windDay>6</windDay>
     </weather>
    </forecast5day>

我做错了什么?这是我无法得到的东西,除了城市。有什么建议吗?

首先,它不是有效的XML。没有关闭标签。然而,这可能只是你的帖子,代码很好。该结构表明以下措施将起作用:

$temperatureDay = $row->data->weather->temperatureDay;
当存在多个
weather
元素时,
weather
将成为一个数组

foreach ($row->data->weather as $weather) {
    $temperatureDay = $weather->temperatureDay;
    // and the other values
}

首先,它不是有效的XML。没有关闭标签。然而,这可能只是你的帖子,代码很好。该结构表明以下措施将起作用:

$temperatureDay = $row->data->weather->temperatureDay;
当存在多个
weather
元素时,
weather
将成为一个数组

foreach ($row->data->weather as $weather) {
    $temperatureDay = $weather->temperatureDay;
    // and the other values
}
示例XML中是否缺少
标记

由于您试图从“日期”、“温度”等中读取的信息嵌套在“天气”标记中,因此您需要向下钻取一层到“行”中:

$row->weather[0]->date

示例XML中是否缺少
标记

由于您试图从“日期”、“温度”等中读取的信息嵌套在“天气”标记中,因此您需要向下钻取一层到“行”中:


$row->weather[0]->date

非常感谢您,但是如果我在一个
数据
标签中有多个
weather
标签?如何获得它?我需要看看XML,它在根循环中吗?我想是的!非常感谢,但是如果我在一个
数据
标签中有多个
天气
标签?如何获得它?我需要看看XML,它在根循环中吗?我想是的!