Shop OBEX P1 Docs P2 Docs Learn Events
xml feeds — Parallax Forums

xml feeds

TumblerTumbler Posts: 323
edited 2012-02-26 21:04 in Accessories
Hi,

I'm using Mikes HTTPServerMinimal.

Is it possible to make a request to a news server (example: http://asp.hbvl.be/syndicationservices/artfeedservice.svc/rss/mostrecent/binnenland )
and get the feeds into the spinneret memory?
if yes, where can i find the response ?

Comments

  • TumblerTumbler Posts: 323
    edited 2012-02-26 21:04
    Ok, i found the getmyip method from Mike, and worked with that sub.

    I make a call (every 10 seconds) to my website (php script) to get the' Now On Air- song' from studio brussel (www.stubru.be)
    This works fine, but sometimes in the response i found a string 'id browser bug'
    Where is this comefrom? i can't find it in the spin files, so i think its comming from stubru?

    php script: http://www.tumbler.be/spinneret/noa.php?id=1
    <?php error_reporting(0);
    $id='';
    if (isset($_GET['id']) && is_numeric($_GET['id'])){
        $id=$_GET['id'];
        if(($id >-1) && ($id <3)){
            // id=0 : previous song
            // id=1 : now playing
            // id=2 : next song
            $array =  xml2array(file_get_contents('http://internetradio.vrt.be/internetradio_master/productiesysteem2/song_noa/noa_41.xml'));
                echo strip_tags(strtoupper($array['noa']['item'][$id]['title']['titlename'])).' - ';
                echo strip_tags(strtoupper($array['noa']['item'][$id]['artist']['artistname']));
        }
        else echo 'INVALID ID';
    }
    else echo 'NO ID FOUND';
    
    
    
    
    function xml2array($contents, $get_attributes=1, $priority = 'tag') { 
        if(!$contents) return array(); 
    
    
        if(!function_exists('xml_parser_create')) { 
            return array(); 
        } 
    
    
        $parser = xml_parser_create(''); 
        xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); 
        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); 
        xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); 
        xml_parse_into_struct($parser, trim($contents), $xml_values); 
        xml_parser_free($parser); 
    
    
        if(!$xml_values) return;
    
    
        $xml_array = array(); 
        $parents = array(); 
        $opened_tags = array(); 
        $arr = array(); 
    
    
        $current = &$xml_array; 
    
    
        $repeated_tag_index = array(); 
        foreach($xml_values as $data) { 
            unset($attributes,$value); 
            extract($data);
    
    
            $result = array(); 
            $attributes_data = array(); 
             
            if(isset($value)) { 
                if($priority == 'tag') $result = $value; 
                else $result['value'] = $value; 
            } 
    
    
            if(isset($attributes) and $get_attributes) { 
                foreach($attributes as $attr => $val) { 
                    if($priority == 'tag') $attributes_data[$attr] = $val; 
                    else $result['attr'][$attr] = $val; 
                } 
            } 
    
    
            if($type == "open") { 
                $parent[$level-1] = &$current; 
                if(!is_array($current) or (!in_array($tag, array_keys($current)))) {  
                    $current[$tag] = $result; 
                    if($attributes_data) $current[$tag. '_attr'] = $attributes_data; 
                    $repeated_tag_index[$tag.'_'.$level] = 1; 
    
    
                    $current = &$current[$tag]; 
    
    
                } else {  
    
    
                    if(isset($current[$tag][0])) {
                        $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result; 
                        $repeated_tag_index[$tag.'_'.$level]++; 
                    } else { 
                        $current[$tag] = array($current[$tag],$result);
                        $repeated_tag_index[$tag.'_'.$level] = 2; 
                         
                        if(isset($current[$tag.'_attr'])) { 
                            $current[$tag]['0_attr'] = $current[$tag.'_attr']; 
                            unset($current[$tag.'_attr']); 
                        } 
    
    
                    } 
                    $last_item_index = $repeated_tag_index[$tag.'_'.$level]-1; 
                    $current = &$current[$tag][$last_item_index]; 
                } 
    
    
            } elseif($type == "complete") {
                if(!isset($current[$tag])) {
                    $current[$tag] = $result; 
                    $repeated_tag_index[$tag.'_'.$level] = 1; 
                    if($priority == 'tag' and $attributes_data) $current[$tag. '_attr'] = $attributes_data; 
    
    
                } else { 
                    if(isset($current[$tag][0]) and is_array($current[$tag])) { 
    
    
                        $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result; 
                         
                        if($priority == 'tag' and $get_attributes and $attributes_data) { 
                            $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data; 
                        } 
                        $repeated_tag_index[$tag.'_'.$level]++; 
    
    
                    } else { 
                        $current[$tag] = array($current[$tag],$result); 
                        $repeated_tag_index[$tag.'_'.$level] = 1; 
                        if($priority == 'tag' and $get_attributes) { 
                            if(isset($current[$tag.'_attr'])) { 
                                 
                                $current[$tag]['0_attr'] = $current[$tag.'_attr']; 
                                unset($current[$tag.'_attr']); 
                            } 
                             
                            if($attributes_data) { 
                                $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data; 
                            } 
                        } 
                        $repeated_tag_index[$tag.'_'.$level]++; 
                    } 
                } 
    
    
            } elseif($type == 'close') { 
                $current = &$parent[$level-1]; 
            } 
        } 
         
        return($xml_array); 
    }
    ?>
    
Sign In or Register to comment.