Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Daten aus XML auslesen und per PHP in Website einfügen HILFE

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
johnny44
PostRank 3
PostRank 3
Beiträge: 97
Registriert: 12.12.2009, 12:35

Beitrag von johnny44 » 24.06.2011, 09:53

Hallo,
ich möchte Daten aus folgender XML auslesen und auf meiner Website einfügen.
XML: https://www.pegelonline.wsv.de/svgz/peg ... de_neu.xml
Es handelt sich um Wasserstände verschiedener Flüsse von PegelOnline.
Ich möchte aus dem XML-File nur einen Wasserstand auslesen z.B. nur ELBE in DRESDEN mit Datum/Zeit und Wasserstand und dann als Text auf meiner Website einfügen

Ich hab schon Stunden probiert und bekomms einfach nicht hin, bin mit PHP und XML nicht so vertraut.

Kann mir jemand helfen?

P.S. Ja es ist erlaubt, diese Daten auszulesen siehe https://www.pegelonline.wsv.de/webservice/ueberblick

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Parus
PostRank 2
PostRank 2
Beiträge: 39
Registriert: 29.04.2010, 07:46

Beitrag von Parus » 24.06.2011, 11:34

Hallo,

warum benutzt Du nicht einfach die API, die auf PegelOnline u.a. für php zur Verfügung gestellt wird? Das dürfte die ganze Sache vereinfachen.

Dokumentation:
https://www.pegelonline.wsv.de/webservice/guideAkt#php

devolo01
PostRank 8
PostRank 8
Beiträge: 843
Registriert: 13.12.2008, 17:57

Beitrag von devolo01 » 24.06.2011, 12:26

Ein wenig mit PHP solltest dich schon auseinandersetzen.

Diese Funktion sollte eigentlich den Problem lösen.

https://de3.php.net/manual/de/function. ... struct.php

oder eben, API was wohl ein wenig SOAP Kenntnisse erfordert.

VG

johnny44
PostRank 3
PostRank 3
Beiträge: 97
Registriert: 12.12.2009, 12:35

Beitrag von johnny44 » 24.06.2011, 12:37

Ja, mit der API hab ich mich auch schon rumgeschlagen, leider habe ich es nicht hinbekommen.
@devolo01: Danke für deinen Link, das probiere ich mal aus, vielleicht klappts.

tojas
PostRank 7
PostRank 7
Beiträge: 624
Registriert: 11.09.2003, 17:14
Wohnort: Berlin

Beitrag von tojas » 25.06.2011, 09:55

Man könnte das auch mit cURL machen: https://www.higherpass.com/php/Tutorial ... Simplexml/

Abraxas
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 25.06.2011, 09:20

Beitrag von Abraxas » 25.06.2011, 11:23

johnny44 hat geschrieben:Hallo,
ich möchte Daten aus folgender XML auslesen und auf meiner Website einfügen.
XML: https://www.pegelonline.wsv.de/svgz/peg ... de_neu.xml
Es handelt sich um Wasserstände verschiedener Flüsse von PegelOnline.
Ich möchte aus dem XML-File nur einen Wasserstand auslesen z.B. nur ELBE in DRESDEN mit Datum/Zeit und Wasserstand und dann als Text auf meiner Website einfügen

Ich hab schon Stunden probiert und bekomms einfach nicht hin, bin mit PHP und XML nicht so vertraut.

Kann mir jemand helfen?

P.S. Ja es ist erlaubt, diese Daten auszulesen siehe https://www.pegelonline.wsv.de/webservice/ueberblick
Sinnvollerweise würde ich die XML Daten einlesen und in eine mySQL Datenbank übertragen und dies als CRON Job installieren.
Der gefilterte Zugriff auf die Datenbank erlaubt dann auch eine statistische Auswertung (Tabelle und/oder Graphik) Der Aktuelle Wert kann über eine simple PHP API graphisch oder als Text dargestellt werden.
Ohne solide PHP Kenntnisse ist dies allerdings sehr schwierig
:cry:

johnny44
PostRank 3
PostRank 3
Beiträge: 97
Registriert: 12.12.2009, 12:35

Beitrag von johnny44 » 26.06.2011, 15:48

Sinnvollerweise würde ich die XML Daten einlesen und in eine mySQL Datenbank übertragen und dies als CRON Job installieren.
Der gefilterte Zugriff auf die Datenbank erlaubt dann auch eine statistische Auswertung (Tabelle und/oder Graphik) Der Aktuelle Wert kann über eine simple PHP API graphisch oder als Text dargestellt werden.
Ohne solide PHP Kenntnisse ist dies allerdings sehr schwierig
So kompliziert über eine Datenbank braucht es nicht sein. Es reicht ein simpler Aufruf per PHP, der den aktuellen Wert als Text ausgibt.

Leider hab ichs bisher nicht hinbekommen. Kennt jemand eine Plattform, wo man gegen etwas Kohle einen Programmierer beauftragen kann, das sollte doch für einen der sich mit PHP etwas auskennt kein Problem sein.

Abraxas
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 25.06.2011, 09:20

Beitrag von Abraxas » 26.06.2011, 18:24

johnny44 hat geschrieben:
Sinnvollerweise würde ich die XML Daten einlesen und in eine mySQL Datenbank übertragen und dies als CRON Job installieren.
Der gefilterte Zugriff auf die Datenbank erlaubt dann auch eine statistische Auswertung (Tabelle und/oder Graphik) Der Aktuelle Wert kann über eine simple PHP API graphisch oder als Text dargestellt werden.
Ohne solide PHP Kenntnisse ist dies allerdings sehr schwierig
So kompliziert über eine Datenbank braucht es nicht sein. Es reicht ein simpler Aufruf per PHP, der den aktuellen Wert als Text ausgibt.

Leider hab ichs bisher nicht hinbekommen. Kennt jemand eine Plattform, wo man gegen etwas Kohle einen Programmierer beauftragen kann, das sollte doch für einen der sich mit PHP etwas auskennt kein Problem sein.
Bitte kontaktiere mich per PM, ich bin gerne bereit gegen eine angemessene und günstige Bezahlung die API zu programmieren.
Ich müsste folgendes vorab wissen:
- Was ist die Hostumgebung (UNIX / WIN, welche Version PHP, etc.)?
- Dedicated / Virtual Server?

johnny44
PostRank 3
PostRank 3
Beiträge: 97
Registriert: 12.12.2009, 12:35

Beitrag von johnny44 » 27.06.2011, 08:11

Ich müsste folgendes vorab wissen:
- Was ist die Hostumgebung (UNIX / WIN, welche Version PHP, etc.)?
- Dedicated / Virtual Server?
PHP 5.3, einfaches Hosting-Paket bei Goneo.
Für was brauchts du diese Angaben? Es müsste doch mit 2-3 Zeilen PHP-Code funktionieren um Daten aus einer XML-Datei auszulesen.

Bei der ECB-XML-Datei zum Beispiel lese ich den Euro/Dollar-Kurs mit drei Zeilen PHP aus, da ist es genau das gleiche. nur dass da die XML-Datei einfacher aufgebaut ist.

Code: Alles auswählen

<?php
$xref = simplexml_load_file&#40;'http&#58;//www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'&#41;;
$nodes = $xref->xpath&#40;'.//*&#91;@currency="USD"&#93;'&#41;;
echo '1 Euro =&nbsp;'.$nodes&#91;0&#93;&#91;'rate'&#93;.'&nbsp;US-Dollar';
?>
Also müsste es doch auch bei PEGELONLINE mit ein paar Zeilen funktionieren. Doch leider ist diese XML-Datei komplizierter aufgebaut

Abraxas
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 25.06.2011, 09:20

Beitrag von Abraxas » 27.06.2011, 16:44

johnny44 hat geschrieben:
Ich müsste folgendes vorab wissen:
- Was ist die Hostumgebung (UNIX / WIN, welche Version PHP, etc.)?
- Dedicated / Virtual Server?
PHP 5.3, einfaches Hosting-Paket bei Goneo.
Für was brauchts du diese Angaben? Es müsste doch mit 2-3 Zeilen PHP-Code funktionieren um Daten aus einer XML-Datei auszulesen.

Bei der ECB-XML-Datei zum Beispiel lese ich den Euro/Dollar-Kurs mit drei Zeilen PHP aus, da ist es genau das gleiche. nur dass da die XML-Datei einfacher aufgebaut ist.

Code: Alles auswählen

<?php
$xref = simplexml_load_file&#40;'http&#58;//www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'&#41;;
$nodes = $xref->xpath&#40;'.//*&#91;@currency="USD"&#93;'&#41;;
echo '1 Euro =&nbsp;'.$nodes&#91;0&#93;&#91;'rate'&#93;.'&nbsp;US-Dollar';
?>
Also müsste es doch auch bei PEGELONLINE mit ein paar Zeilen funktionieren. Doch leider ist diese XML-Datei komplizierter aufgebaut
Nette Art um Hilfe zu fragen ... :o

check this out: https://www.vxnic.com/test/ (incl. html 36 lines)

Code: Alles auswählen

<?php
$out = '';
function _PRS&#40;$str&#41; &#123;
	return&#40;iconv&#40;"UTF-8","ISO-8859-1//TRANSLIT",$str&#41;&#41;;
&#125;
try &#123;
	$xref = simplexml_load_file&#40;'http&#58;//www.pegelonline.wsv.de/svgz/pegelstaende_neu.xml'&#41;;
	foreach &#40;$xref->table->gewaesser as $value&#41; &#123;
		if &#40;_PRS&#40;$value->name&#41; == 'ELBE'&#41; &#123;
			foreach &#40;$value->item as $items&#41; &#123;
				if &#40;_PRS&#40;$items->pegelname&#41; == 'DRESDEN'&#41; &#123;
					$out .= "<table>\n";
					$out .= "<tr><td>Pegelname&#58;</td><td>"._PRS&#40;$items->pegelname&#41;."</td></tr>\n";
                    $out .= "<tr><td>Messwert&#58;</td><td>"._PRS&#40;$items->messwert&#41;."</td></tr>\n";
                    $out .= "<tr><td>km&#58;</td><td>"._PRS&#40;$items->km&#41;."</td></tr>\n";
                    $out .= "<tr><td>pnp&#58;</td><td>"._PRS&#40;$items->pnp&#41;."</td></tr>\n";
                    $out .= "<tr><td>Tendenz&#58;</td><td>"._PRS&#40;$items->tendenz&#41;."</td></tr>\n";
                    $out .= "<tr><td>Datum&#58;</td><td>"._PRS&#40;$items->datum&#41;."</td></tr>\n";
                    $out .= "<tr><td>Uhrzeit&#58;</td><td>"._PRS&#40;$items->uhrzeit&#41;."</td></tr>\n";					
					$out .= "</table>\n";
					break;
				&#125;
			&#125;
			break;		 
		&#125;
	&#125; 
	if &#40;$out == ''&#41; &#123;
	  $out = "No Data";
	&#125;
&#125; catch &#40;Exception $e&#41; &#123;
	$out = "No Data";
&#125; 
echo&#40;$out&#41;;
?>
[/code]

methusalem
PostRank 4
PostRank 4
Beiträge: 139
Registriert: 26.01.2009, 19:52
Wohnort: Hamburg

Beitrag von methusalem » 27.06.2011, 16:55

Klarer Fall von "zu nett für diese Welt" :roll:

Anonymous

Beitrag von Anonymous » 27.06.2011, 17:54

johnny44 hat geschrieben:.... Es reicht ein simpler Aufruf per PHP, der den aktuellen Wert als Text ausgibt....
klar, wenn du das ganze nun nur als Übung machst und eh nicht vorhast das auf deiner Webseite einzubauen.... oder du von vornherein weist das du eh nie viel Traffic haben wirst.... dann kannste natürlich bei jedem Seitenaufruf die Daten aktuell auslesen.... :roll:

johnny44
PostRank 3
PostRank 3
Beiträge: 97
Registriert: 12.12.2009, 12:35

Beitrag von johnny44 » 28.06.2011, 13:40

@net(t)worker
... oder du von vornherein weist das du eh nie viel Traffic haben wirst....
ist nicht viel traffic, ist nur für unsere Vereins-Website


@Abraxas
Wahnsinn, das ist aber nett. Kann ich dir irgendwie eine kleine Aufmerksamkeit zukommen lassen??

P.S. nur zur Info, funktioniert nicht mit PHP 5.3, nur mit 5.2, hab den Server wieder auf PHP 5.2 umgestellt und es hat geklappt. DANKE DANKE

fabschu
PostRank 1
PostRank 1
Beiträge: 1
Registriert: 07.07.2011, 13:23

Beitrag von fabschu » 07.07.2011, 13:26

Abraxas hat geschrieben:
johnny44 hat geschrieben:
check this out: https://www.vxnic.com/test/ (incl. html 36 lines)

Code: Alles auswählen

<?php
$out = '';
function _PRS&#40;$str&#41; &#123;
	return&#40;iconv&#40;"UTF-8","ISO-8859-1//TRANSLIT",$str&#41;&#41;;
&#125;
try &#123;
	$xref = simplexml_load_file&#40;'http&#58;//www.pegelonline.wsv.de/svgz/pegelstaende_neu.xml'&#41;;
	foreach &#40;$xref->table->gewaesser as $value&#41; &#123;
		if &#40;_PRS&#40;$value->name&#41; == 'ELBE'&#41; &#123;
			foreach &#40;$value->item as $items&#41; &#123;
				if &#40;_PRS&#40;$items->pegelname&#41; == 'DRESDEN'&#41; &#123;
					$out .= "<table>\n";
					$out .= "<tr><td>Pegelname&#58;</td><td>"._PRS&#40;$items->pegelname&#41;."</td></tr>\n";
                    $out .= "<tr><td>Messwert&#58;</td><td>"._PRS&#40;$items->messwert&#41;."</td></tr>\n";
                    $out .= "<tr><td>km&#58;</td><td>"._PRS&#40;$items->km&#41;."</td></tr>\n";
                    $out .= "<tr><td>pnp&#58;</td><td>"._PRS&#40;$items->pnp&#41;."</td></tr>\n";
                    $out .= "<tr><td>Tendenz&#58;</td><td>"._PRS&#40;$items->tendenz&#41;."</td></tr>\n";
                    $out .= "<tr><td>Datum&#58;</td><td>"._PRS&#40;$items->datum&#41;."</td></tr>\n";
                    $out .= "<tr><td>Uhrzeit&#58;</td><td>"._PRS&#40;$items->uhrzeit&#41;."</td></tr>\n";					
					$out .= "</table>\n";
					break;
				&#125;
			&#125;
			break;		 
		&#125;
	&#125; 
	if &#40;$out == ''&#41; &#123;
	  $out = "No Data";
	&#125;
&#125; catch &#40;Exception $e&#41; &#123;
	$out = "No Data";
&#125; 
echo&#40;$out&#41;;
?>
[/code]
Hab deinen Code mal bei mir eingebunden und als php-datei aufn webserver gelegt. passiert aber nichts beim laden, die datei bleibt leer. Kannst du mir bitte sagen woran das liegt? Danke vielmals

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag