poande05 Skrevet 14. november 2011 Del Skrevet 14. november 2011 (endret) Hei folkens. Jeg har sett litt på datagrunnlaget for budsjettet til Bergen Kommune. Tenkte jeg skulle se om jeg kom på en app eller noe, men har ikke kommet lenger enn til å parse dataene litt. Noen som har noen tanker? Uendelig med muligheter her. Nedenforstående kode er en begynnende enkel parsing av dataene i driftsbudsjettet. Håper noen er litt likesinnede meg her og liker å leke med datasamlinger. Jeg er temmelig nybegynner, kun student med noe arbeidserfaring. <?php $handle = fopen("https://www.bergen.kommune.no/bk/multimedia/archive/00114/Datagrunnlag_drift__114176a.csv", "r"); while (($data = fgetcsv($handle, 5000, ",")) !== FALSE) { $pieces = explode(";", $data[0]); print_r($pieces); echo "<br/>"; echo "<br/>"; } ?> Endret 14. november 2011 av poande05 Lenke til kommentar
poande05 Skrevet 14. november 2011 Forfatter Del Skrevet 14. november 2011 Setter denne som løst siden ingen er like nerd her Jeg laget i hvert fall et script som oversetter dataene til xml. Om noen skulle ville lage noe av det da. <?php //åpne dokumentet for driftsbudsjett 2012 $handle = fopen("https://www.bergen.kommune.no/bk/multimedia/archive/00114/Datagrunnlag_drift__114176a.csv", "r"); //XML dom $dom = new DOMDocument('1,0', 'UTF-8'); $xmlRoot = $dom->createElement("xml"); $xmlRoot = $dom->appendChild($xmlRoot); //array til feltnavn $fieldNames = array(); //første linje inneholder felttitler, vi befinner oss i utgangspunktet på første linje, derfor setter vi en boolsk verdi her. $firstLineBool = true; //tar for seg hver linje i dokumentet while (($rows = fgetcsv($handle, 5000, ";")) !== FALSE) { //for første linje lagrer vi alle feltnavn i en array if($firstLineBool) { foreach($rows as $row) { //regex for å lage lovlige nodenavn $row = preg_replace('/[^0-9a-z ]+/i', "", $row); //hvis den begynner med et tall legg til en "a" foran (for man kan ikke begynne navnet på et element med et tall) if(is_numeric(substr($row, 0, 1))) { $row = "a" . $row; } $fieldNames[] = $row; } } else { //legger til et barn i xml-dokumentet vårt $entity = $dom->createElement("Post"); $entity = $xmlRoot->appendChild($entity); //for hver databit som nå ligger i $pieces lager vi et xml-element med dataene i, basert på feltnavnene vi fikk i første linje av dokumentet $whereInFieldNames = 0; foreach($rows as $row) { $element = $dom->createElement($fieldNames[$whereInFieldNames]); $element = $entity->appendChild($element); //konverter bokstaver til entities $content = $dom->createTextNode(utf8_encode($row)); $element->appendChild($content); $whereInFieldNames++; } } $firstLineBool = false; } echo $dom->saveXML(); ?> Lenke til kommentar
Thomas. Skrevet 15. november 2011 Del Skrevet 15. november 2011 (endret) Eller så har du funnet koden på nettet og oversatt dårlig. //legger til et barn i xml-dokumentet vårt Trur ikke child betyr barn i denne sammenhengen. Endret 15. november 2011 av Thomas. Lenke til kommentar
Milktea Skrevet 15. november 2011 Del Skrevet 15. november 2011 Ganske sikker på at barn, søsken og forelder er korrekt norsk terminologi når man snakker om noder i et tre. Kult at informasjonen blir gjort såpass tilgjengelige. Ligger dog allerede en del ferdige løsninger for lesing av CSV i PHP ute på nettet. Ville og kanskje lagt det rett inn i en database hvis jeg skulle brukt dataene videre i et prosjekt. Lenke til kommentar
poande05 Skrevet 16. november 2011 Forfatter Del Skrevet 16. november 2011 Ganske sikker på at barn, søsken og forelder er korrekt norsk terminologi når man snakker om noder i et tre. Kult at informasjonen blir gjort såpass tilgjengelige. Ligger dog allerede en del ferdige løsninger for lesing av CSV i PHP ute på nettet. Ville og kanskje lagt det rett inn i en database hvis jeg skulle brukt dataene videre i et prosjekt. Ja ligger nok ferdig. Fant også ut på data.norge.no at dataene finnes i XML. Om du legger det i en SQL base vil ikke dataene oppdatere seg om de endrer kommunalt da. Jeg fant ut at jeg heller ville se på BIBSYS sine åpne data. Sjekk bloggen min for mer om prosjektet Eller så har du funnet koden på nettet og oversatt dårlig. //legger til et barn i xml-dokumentet vårt Trur ikke child betyr barn i denne sammenhengen. jeg har skrevet dette selv, som en øvelse. Men ser på data.norge.no at dataene allerede finnes som XML. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå