使用 simplexml 解析 PHP 字段值
Parse PHP using simplexml for field values
正在尝试解析以下内容xml:
<?xml version="1.0"?>
<devices>
<device name="TEMP" index="0" available="1" type="" id="xxx">
<field type="2" max="50" min="-20" niceName="Temperature (C)" value="24.75" key="TempC"/>
<field type="2" max="122" min="-4" niceName="Temperature (F)" value="76.55" key="TempF"/>
并拉出 TempF 值 76.55。
这是我尝试的代码,但我没有做错什么:
$xml = simplexml_load_file('c:\data.xml') or die("Error: Cannot create object");
echo '<h2>Server Temperature</h2>';
$list = $xml->devices;
for ($i = 0; $i < count($list); $i++) {
echo 'Temp: ' .$list[$i]->TempF[value] . '<br>';
您可以循环 $devices->device
而不是使用 for 循环
echo '<h2>Server Temperature</h2>';
foreach ($xml->device as $device) {
foreach ($device->field as $field) {
$att = $field->attributes();
if ((string)$att->key === "TempF") {
echo 'Temp: ' . $field->attributes()->value . "<br>";
}
}
}
输出
<h2>Server Temperature</h2>Temp: 76.55<br>
看到一个Php demo
或者如果你想循环所有字段的值,你可以使用xpath:
echo '<h2>Server Temperature</h2>';
foreach ($xml->xpath('/devices/device/field[@key="TempF"]/@value') as $value) {
echo 'Temp: ' . $value . "<br>";
}
输出
<h2>Server Temperature</h2>Temp: 76.55<br>
再看一个Php demo
正在尝试解析以下内容xml:
<?xml version="1.0"?>
<devices>
<device name="TEMP" index="0" available="1" type="" id="xxx">
<field type="2" max="50" min="-20" niceName="Temperature (C)" value="24.75" key="TempC"/>
<field type="2" max="122" min="-4" niceName="Temperature (F)" value="76.55" key="TempF"/>
并拉出 TempF 值 76.55。
这是我尝试的代码,但我没有做错什么:
$xml = simplexml_load_file('c:\data.xml') or die("Error: Cannot create object");
echo '<h2>Server Temperature</h2>';
$list = $xml->devices;
for ($i = 0; $i < count($list); $i++) {
echo 'Temp: ' .$list[$i]->TempF[value] . '<br>';
您可以循环 $devices->device
而不是使用 for 循环
echo '<h2>Server Temperature</h2>';
foreach ($xml->device as $device) {
foreach ($device->field as $field) {
$att = $field->attributes();
if ((string)$att->key === "TempF") {
echo 'Temp: ' . $field->attributes()->value . "<br>";
}
}
}
输出
<h2>Server Temperature</h2>Temp: 76.55<br>
看到一个Php demo
或者如果你想循环所有字段的值,你可以使用xpath:
echo '<h2>Server Temperature</h2>';
foreach ($xml->xpath('/devices/device/field[@key="TempF"]/@value') as $value) {
echo 'Temp: ' . $value . "<br>";
}
输出
<h2>Server Temperature</h2>Temp: 76.55<br>
再看一个Php demo