PHP XML解析,多个';指数';问题
我正在使用php foreach循环解析下面的数据,我需要从measuredValue索引2和索引3中提取数据,但是我不确定如何做到这一点。下面的代码显示了我用来从XML文件中提取数据的方法。我必须了解“索引1”中的气温工作,但我不知道如何进入下一个“索引”部分PHP XML解析,多个';指数';问题,php,xml,xpath,Php,Xml,Xpath,我正在使用php foreach循环解析下面的数据,我需要从measuredValue索引2和索引3中提取数据,但是我不确定如何做到这一点。下面的代码显示了我用来从XML文件中提取数据的方法。我必须了解“索引1”中的气温工作,但我不知道如何进入下一个“索引”部分 foreach ($weather_array->payloadPublication->siteMeasurements as $roaddt){ echo (" <tr>
foreach ($weather_array->payloadPublication->siteMeasurements as $roaddt){
echo ("
<tr>
<td> " .$roaddt->measurementSiteReference. "</td>
<td> " .$roaddt->measurementTimeDefault. "</td>
<td> " .$roaddt->measuredValue->basicDataValue->temperature->airTemperature. "</td>
<td> " .$roaddt->measuredValue->basicDataValue->wind->windDirectionCompass. "</td>
</tr> ");
}
echo "</table>";
foreach($weather\u array->payloadPublication->sitemasurementas$roaddt){
回声(“
“$roaddt->measurementSiteReference。”
“$roaddt->MEASUREMENTIMEDEFAULT。”
“$roaddt->测量值->基本值->温度->空气温度。”
“$roaddt->测量值->基本CDATA值->风->风向指南针。”
");
}
回声“;
下面的代码是我试图从中提取的部分代码:
<siteMeasurements>
<measurementSiteReference>NRA10810</measurementSiteReference>
<measurementTimeDefault>2017-02-28T15:50:00+00:00</measurementTimeDefault>
<measuredValue index="1">
<basicDataValue xsi:type="TemperatureInformation">
<period>3600</period>
<temperature>...</temperature>
</basicDataValue>
</measuredValue>
<measuredValue index="2">
<basicDataValue xsi:type="PrecipitationInformation">
<period>3600</period>
<precipitationDetail></precipitationDetail>
</basicDataValue>
</measuredValue>
<measuredValue index="3">
<basicDataValue xsi:type="WindInformation">
<period>3600</period>
<wind>
<maximumWindSpeed>45</maximumWindSpeed>
<windDirectionBearing>302</windDirectionBearing>
<windDirectionCompass>westNorthWest</windDirectionCompass>
<windSpeed>27.4</windSpeed>
</wind>
</basicDataValue>
</measuredValue>
NRA10810
2017-02-28:15:50:00+00:00
3600
...
3600
3600
45
302
西北偏西
27.4
您只循环站点测量
,但每个站点测量
都有多个测量值
因此,在现有循环中,您需要在
measuredValue
上添加另一个循环。诸如此类:
foreach ($weather_array->payloadPublication->siteMeasurements as $roaddt){
echo ("
<tr>
<td> " .$roaddt->measurementSiteReference. "</td>
<td> " .$roaddt->measurementTimeDefault. "</td>");
foreach ($roaddt->measuredValue as $mValue){
echo ("<td> " .$mValue->basicDataValue. "</td>");
}
echo ("</tr>");
}
foreach($weather\u array->payloadPublication->sitemasurementas$roaddt){
回声(“
“$roaddt->measurementSiteReference。”
“$roaddt->MEASUREMENTIMEDEFAULT.”;
foreach($roaddt->measuredValue为$mValue){
echo(“$mValue->basicDataValue.”);
}
回声(“”);
}
如何读取XML(即,$weather\u array
如何分配)?