PHP SimpleXML命名空间问题

时间:2011-05-17 07:06:55

标签: php xml simplexml

我正在尝试获取RSS Feed中每个条目的entry-> id和entry-> cap:parameter->值....下面是我正在使用的代码。它正确显示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>";
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

<value>元素与<cap:parameter>不在同一个namespace中:

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

所以你必须再次致电children()

代码(demo

$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
    );
}