php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 15-11-2008, 10:54
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard XML Daten auswählen und in Datenbank schreiben

Ich habe mir ein PHP Script erstellt, mit dem ich im Umkreis von 15 km einer Gemeinde von Geonames mit Georeferenzierte Wikipedia Artikel als XML Daten laden kann.

Diese werden in einer neuen XML Datei gespeichert und dann weiter verarbeitet.

Da bei den Gemeinden einzelne Wikipedia Artikel merfach vorkommen können, möchte ich die Artikel auswählen und in einer neuen XML Datei zusammenfassen. Wie kann ich das am besten machen.

Ich habe mir überlegt eine Liste zu erstellen, wo ich dann einzelne Daten per Kontrollkästchen auswählen kann und diese dann in eine neue XML Datei kopiere.

MFG Maffy
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
  #2 (permalink)  
Alt 15-11-2008, 13:58
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich gratuliere herzlich zu dieser Idee und wünsche viel Spass bei der Umsetzung.

(keine offenen Fragen in deinem Post)
Mit Zitat antworten
  #3 (permalink)  
Alt 15-11-2008, 18:37
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Typische Antwort auf eine Frage, aber das ist hier normal.
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
  #4 (permalink)  
Alt 15-11-2008, 18:43
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Worauf dich der 'nerd' hinweisen wollte ist, dass du eine eventuelle Lösung für dein Problem selber gefunden hast.
Da das Thema nicht im Projekthilfe Forum ist, sieht es so aus, als ob du das selber umsetzen könntest.

Nun ist die Frage,: wo es bei dir an der Umsetzung hapert.

mfg
Mit Zitat antworten
  #5 (permalink)  
Alt 16-11-2008, 11:18
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, wenn ich so reagiere.
Mein Problem ist es, das ich mit XML noch wenig zu tun hatte.

Wie kann ich einzelne XML Dateien nach bestimmten Suchwörten (PLZ oder Gemeinde) durchsuchen und die Funde einzeln auswählen um diese in eine neue XML Datei zu schreiben.

Die XML Datei die ich mit meiner Abfrage von Geonames erhalte ist so aufgebaut.

Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<geonames>
<entry>
<lang>de</lang>
<title>Klinikum Fulda</title>
<summary>Das Klinikum Fulda ist ein Krankenhaus der Maximalversorgung 
und seit 1970 ein akademischer Lehrbetrieb für Medizinstudenten der 
Philipps-Universität Marburg und seit 1999 Lehrkrankenhaus für Pflege der 
Hochschule Fulda mit 924 Betten. Das Klinikum wurde in seiner 
gegenwärtigen Form 1976 in Betrieb genommen und umfasst 28
Institute und Kliniken bei einem Einzugsgebiet mit etwa 500 (...)</summary>
<feature>landmark</feature>
<countryCode>DE</countryCode>
<population>0</population>
<elevation>0</elevation>
<lat>50.5477</lat>
<lng>9.7054</lng>
<wikipediaUrl>http://de.wikipedia.org/wiki/Klinikum_Fulda</wikipediaUrl>
<thumbnailImg/>
<distance>1.7458</distance>
</entry>
<entry>
</geonames>
Und ich lade die Daten so:
PHP-Code:

// Xml Daten laden und anzeigen
$daten file_get_contents("".$filename.""); // Datei einlesen
$daten explode("<entry>" $daten); // Inhalt in ein Array zerlegen

for ($zaehler 1$zaehler count($daten); $zaehler++) {
     
ereg("<title>(.*)</title>" $daten[$zaehler] , $title); // Titel
ereg("<lat>(.*)</lat>" $daten[$zaehler] , $lat); // Längen und Breitengrad
ereg("<lng>(.*)</lng>" $daten[$zaehler] , $lng); // Längen und Breitengrad
ereg("<summary>(.*)</summary>" $daten[$zaehler] , $summary); // Beschreibung
ereg("<wikipediaUrl>(.*)</wikipediaUrl>" $daten[$zaehler] , $wikipediaUrl); // wikipediaUrl
    
// Datenfelder
$lat $lat[1];
$lng $lng[1];
$title utf8_decode($title[1]);
$summary utf8_decode($summary[1]);
$wikiUrl $wikipediaUrl[1];
    
$link "Artikel <a href=\"".$wikiUrl."\" target=\"_blank\">lesen</a>";
                

__________________
in der ruhe liegt die kraft

Geändert von maffy (16-11-2008 um 16:11 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 16-11-2008, 15:43
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Es wäre nett, wenn du dir mal unsere Regeln durchliest und deinen letzten Beitrag so umbrichst, dass wir nicht mehr bis Asien scrollen müssen.

Was soll das: "".$filename."" ?
Warum gehst du mit ereg() auf XML los? Dafür gibt es doch schicke Extensions wie SimpleXML.
PLZ und Gemeinde sehe ich den XML-File nicht.
Mit Zitat antworten
  #7 (permalink)  
Alt 16-11-2008, 16:09
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Er soll in <titel> <summary> nach einen suchbegriff suchen.

Leider funktioniert das bei mir nicht, weder die DomXML Funktionen, noch SimpleXML.

Ich möchte die Daten Offline vorbereiten und dann hochspielen.

Mfg Maffy
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
  #8 (permalink)  
Alt 19-11-2008, 15:51
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe mir jetzt xampp neu installiert um mit simplexml arbeiten zu können.

Problem ist jetzt noch das er die Doppelten Daten nicht aus dem array schmeißt.

Er soll im title Tag nach schauen und dann alle Datensätze ausgeben.

PHP-Code:

<?PHP

    
// Alle XML Dateien im Verzeichniss einlesen
    
$file_dir './';
    
$i 0;
    
    
$dirhandle opendir($file_dir); // Dateien auslesen Anfang
    
    
while ($file readdir($dirhandle)) {

        if (
preg_match('/\.(xml)$/i',$file)){
                            
            
$xml_dateien[] = "".$file."";     
        }
    
    }

    
closedir($dirhandle); // Dateien auslesen Ende
    
      // Alle Dateien einlesen aus $xml_dateien
      
for ($zaehler 0$zaehler count($xml_dateien); $zaehler++) {

        
$xml simplexml_load_file($xml_dateien[$zaehler]);     //Lädt die XML-Datei in ein Objekt 
    
        
if($xml) {    //Prüfen, ob Datei Fehler enthielt 

             
foreach($xml->entry as $newdata) { 
                
                
$titel utf8_decode($newdata->title);
                
$summary utf8_decode($newdata->summary);
                
$wikipediaUrl $newdata->wikipediaUrl;
                
$lat $newdata->lat;
                
$lng $newdata->lng;
                
                
$xmldaten_result[] = "<div id=\"infobox\"><h1>$titel</h1>
<p>$summary<hr/>Artikel bei <a href=\"$wikipediaUrl\">Wikipedia</a> 
lesen - <b>Koordinaten:</b> $lat - $lng</p></div>"

                
                
asort($xmldaten_result);
                
array_unique($xmldaten_result);

            }
            
        }
        

        
// Daten ausgeben
        
foreach($xmldaten_result as $data){
            print 
"$data";
        }

    
    }

?>
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
  #9 (permalink)  
Alt 19-11-2008, 22:46
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Deine Art, die Datei(en) zu laden ist nicht verkehrt, mit glob() ginge es allerdings viel galanter.

sort() und array_unique() solltest du unbedingt nach der foreach-Schleife machen. Dort hat es den selben Effekt, wird aber nur einmal ausgeführt und dein Script läuft schneller.

Dass die doppelten Einträge nicht verschwinden, ist kein Wunder. Sie sind einfach nicht doppelt, weil mehr als nur der Titel drinsteckt. print_r($xmldaten_result) wirds dir zeigen.

PHP-Code:
foreach ($xml->entry as $newdata) {
    
// ...
    
$xmldaten_result[$titel] = '...';
}
sort(); 
Auf diese Weise brauchst du array_unique() gar nicht mehr.


Übrigens solltest du dich zwischen englischen und deutschen Variablennamen entscheiden.
Mit Zitat antworten
  #10 (permalink)  
Alt 20-11-2008, 12:25
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, werde ich mal so testen. Danke.
Mfg Maffy
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
  #11 (permalink)  
Alt 20-11-2008, 14:06
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es funktioniert jetzt soweit.

Testseite

Muss ich bei PHP5 immer *.php5 als Datei Endung schreiben?

Bei 1und1 muss ich das wohl so schreiben, damit er das Script als PHP5 erkennt und die XML Funktionen ausführt?

Mfg Maffy
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
  #12 (permalink)  
Alt 20-11-2008, 14:08
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Muss ich bei PHP5 immer *.php5 als Datei Endung schreiben?

Bei 1und1 muss ich das wohl so schreiben, damit er das Script als PHP5 erkennt und die XML Funktionen ausführt?
Aufgrund der Serverkonfiguration bei 1&1 musst du php5 dran schreiben. Aber normalerweise reicht php aus.
Mit Zitat antworten
  #13 (permalink)  
Alt 20-11-2008, 15:00
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Alles klar.

Als nächstes werd ich mal versuchen das ganze noch mit einer google maps Karte zu verknüpfen.

Mfg Maffy
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
  #14 (permalink)  
Alt 21-11-2008, 21:08
maffy
 Registrierter Benutzer
Links : Onlinestatus : maffy ist offline
Registriert seit: Oct 2002
Ort: Steinach - Bad Bocklet
Beiträge: 296
maffy ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe jetzt mal eine Karte erstellt.

Google Map Karte

Das Problem ist jetzt noch das es ziemlich lang dauert bis er die Daten lädt.

Wie kann ich noch ein Info DIV über der Karte anzeigen mit "bitte Warten" während er die die Marker lädt.

Mfg Maffy
__________________
in der ruhe liegt die kraft
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:07 Uhr.