基于值解析XML元素属性

时间:2013-05-08 04:05:54

标签: php xml

我可以解析许多不同类型的XML Feed,并为每种不同的情况提供方法。我遇到过一个我不熟悉如何攻击它的人。

feed有元素属性并不是什么大问题,但元素的一些属性就是这样,输出基于一个值。

tornado="0" funnelcloud="0" wallcloud="0" rotation="0" hail="1" wind="0" flood="0" flashflood="0" other="0"

所以基本上如果有1它将输出该数据。那么我该如何解析它以便输出列出的那个呢?我想我可能需要一个阵列?如果有任何例子,我可以得到一个想法?

以下是我如何解析效果很好的数据。轻巧简单。

$data = "http://www.spotternetwork.org/data.php";
$xml = simplexml_load_file($data);

foreach($xml->report as $report){

    $date = $report['stamp'];
    $narrative = $report['narrative'];
    $loc = $report['city1'];
    $tz = $report['tz'];

    $time = strtotime($date.' UTC');
    $dateInLocal = date("D g:i a", $time);

-Thanks

1 个答案:

答案 0 :(得分:0)

您需要指定用于解析xml的内容,但假设它是simpleXML,您可以执行以下操作:

$attrs = [];
foreach($report->attributes() as $a => $b) {
    $attrs[$a] = $b;
}

$value = array_search('1', $attrs);

开关:

switch ($value) {
    case 'hail':
        echo "hail stuff";
        break;
    case 'tornado':
        echo "tornado stuff";
        break;
}