一尘不染

PHP SimpleXML命名空间问题

php

我正在尝试为RSS提要中的每个条目获取entry-> id和entry-> cap:parameter->
value…。以下是我正在使用的代码。它正确显示了ID,但未显示值字段。…请帮助。

$url = 'http://alerts.weather.gov/cap/us.php?x=1';
$cap = simplexml_load_file($url);
foreach($cap->entry as $entry){
    echo 'ID: ', $entry->id, "\n";
    echo 'VTEC: ', $entry->children('cap', true)->parameter->value, "\n"; 
echo "<hr>";
}

我在这里先向您的帮助表示感谢。


阅读 339

收藏
2020-05-29

共1个答案

一尘不染

<value>元素是不是在同一个命名空间<cap:parameter>

<cap:parameter>
    <valueName>VTEC</valueName>
    <value>/O.CON.KMPX.FL.W.0012.000000T0000Z-110517T1800Z/</value>
</cap:parameter>

因此,您必须children()再次致电。

代码(演示

$feed = simplexml_load_file('http://alerts.weather.gov/cap/us.php?x=1');
foreach ($feed->entry as $entry){
    printf(
        "ID: %s\nVTEC: %s\n<hr>",
        $entry->id,
        $entry->children('cap', true)->parameter->children()->value
    );
}
2020-05-29