daten von einer WEB Seite lesen

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benutzeravatar
engindenizoglu
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 41
Registriert: Mi, 08. Nov 2017 20:58
Wohnort: ISTANBUL

daten von einer WEB Seite lesen

Beitrag von engindenizoglu »

Hallo,

Wie kann ich von einer Web-Seite die Waehrungen lesen ?

beispiel web Seite (von Waehrungen):
http://www.tcmb.gov.tr/kurlar/202202/08022022.xml
ENGIN RENE D.

LARA ltd
http:\\www.laraelectromechanical.com
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: daten von einer WEB Seite lesen

Beitrag von Martin Altmann »

İyi akşamlar Engin,
Du kannst mittels LoadfromUrl() die Webseite aufrufen - die Funktion liefert Dir dann den Inhalt der Webseite in seiner HTML-Textform:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="isokur.xsl"?>
<Tarih_Date Tarih="08.02.2022" Date="02/08/2022"  Bulten_No="2022/27" >
	<Currency CrossOrder="0" Kod="USD" CurrencyCode="USD">
			<Unit>1</Unit>
			<Isim>ABD DOLARI</Isim>
			<CurrencyName>US DOLLAR</CurrencyName>
			<ForexBuying>13.6160</ForexBuying>
			<ForexSelling>13.6406</ForexSelling>
			<BanknoteBuying>13.6065</BanknoteBuying>
			<BanknoteSelling>13.6610</BanknoteSelling>
			<CrossRateUSD/>
			<CrossRateOther/>
		
	</Currency>
	<Currency CrossOrder="1" Kod="AUD" CurrencyCode="AUD">
			<Unit>1</Unit>
			<Isim>AVUSTRALYA DOLARI</Isim>
			<CurrencyName>AUSTRALIAN DOLLAR</CurrencyName>
			<ForexBuying>9.6785</ForexBuying>
			<ForexSelling>9.7416</ForexSelling>
			<BanknoteBuying>9.6340</BanknoteBuying>
			<BanknoteSelling>9.8001</BanknoteSelling>
				<CrossRateUSD>1.4035</CrossRateUSD>
				<CrossRateOther/>
		
	</Currency>
	<Currency CrossOrder="2" Kod="DKK" CurrencyCode="DKK">
			<Unit>1</Unit>
			<Isim>DANİMARKA KRONU</Isim>
			<CurrencyName>DANISH KRONE</CurrencyName>
			<ForexBuying>2.0847</ForexBuying>
			<ForexSelling>2.0949</ForexSelling>
			<BanknoteBuying>2.0832</BanknoteBuying>
			<BanknoteSelling>2.0997</BanknoteSelling>
				<CrossRateUSD>6.5213</CrossRateUSD>
				<CrossRateOther/>
		
	</Currency>
	<Currency CrossOrder="9" Kod="EUR" CurrencyCode="EUR">
			<Unit>1</Unit>
			<Isim>EURO</Isim>
			<CurrencyName>EURO</CurrencyName>
			<ForexBuying>15.5412</ForexBuying>
			<ForexSelling>15.5692</ForexSelling>
			<BanknoteBuying>15.5303</BanknoteBuying>
			<BanknoteSelling>15.5926</BanknoteSelling>
				<CrossRateUSD/>
				<CrossRateOther>1.1414</CrossRateOther>
		
	</Currency>
	<Currency CrossOrder="10" Kod="GBP" CurrencyCode="GBP">
			<Unit>1</Unit>
			<Isim>İNGİLİZ STERLİNİ</Isim>
			<CurrencyName>POUND STERLING</CurrencyName>
			<ForexBuying>18.4061</ForexBuying>
			<ForexSelling>18.5020</ForexSelling>
			<BanknoteBuying>18.3932</BanknoteBuying>
			<BanknoteSelling>18.5298</BanknoteSelling>
				<CrossRateUSD/>
				<CrossRateOther>1.3541</CrossRateOther>
		
	</Currency>
	<Currency CrossOrder="3" Kod="CHF" CurrencyCode="CHF">
			<Unit>1</Unit>
			<Isim>İSVİÇRE FRANGI</Isim>
			<CurrencyName>SWISS FRANK</CurrencyName>
			<ForexBuying>14.7030</ForexBuying>
			<ForexSelling>14.7974</ForexSelling>
			<BanknoteBuying>14.6809</BanknoteBuying>
			<BanknoteSelling>14.8196</BanknoteSelling>
				<CrossRateUSD>0.9239</CrossRateUSD>
				<CrossRateOther/>
		
	</Currency>
	<Currency CrossOrder="4" Kod="SEK" CurrencyCode="SEK">
			<Unit>1</Unit>
			<Isim>İSVEÇ KRONU</Isim>
			<CurrencyName>SWEDISH KRONA</CurrencyName>
			<ForexBuying>1.4836</ForexBuying>
			<ForexSelling>1.4990</ForexSelling>
			<BanknoteBuying>1.4826</BanknoteBuying>
			<BanknoteSelling>1.5024</BanknoteSelling>
				<CrossRateUSD>9.1387</CrossRateUSD>
				<CrossRateOther/>
		
	</Currency>
...
Wenn Du diese Rückgabe in einer Variablen speiecherst, kannst Du diese danach mit den passenden XML-node-Funktionen ( :arrow: https://doc.alaska-software.com/content ... toc_x.html ) durcharbeiten - wie Du siehst, sind die Angaben ja immer gleich aufgebaut (von den Bezeichnern her).
Çok selamlar,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: daten von einer WEB Seite lesen

Beitrag von Tom »

Irgendwo gab's auch noch den "Simple XML Parser", mit dem es sehr leicht wäre, die XML-Struktur auszuwerten. In den Samples, meine ich.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: daten von einer WEB Seite lesen

Beitrag von Jan »

XMLSimpleParser() ist eine Xbase++-Funktion. Macht das alles erheblich einfacher als die alten XML-Funktionen. Das resultierende Objekt ist aber manchmal ziemlich verwirrend aufgebaut.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Re: daten von einer WEB Seite lesen

Beitrag von Lewi »

Hallo,
für ein Projekt habe die API der Europäischen Zentral Bank genutzt. Diese ist kostenfrei und liefert über einen Endpoint die Daten JSON-Format.
So sieht das als PHP-Code aus. Es sollte kein Problem darstellen, dies in xBase umzusetzen.

Code: Alles auswählen

 
	$client = new Client([
	    // Base URI is used with relative requests
	    'base_uri' => 'https://api.exchangeratesapi.io/',
	]);
	 
	// get all rates
	$response = $client->request('GET', 'latest', [
	    'query' => [
	        'base' => 'USD',
	    ]
	]);
	 
	if($response->getStatusCode() == 200) {
	    $body = $response->getBody();
	    $arr_body = json_decode($body);
	    print_r($arr_body);
	}

Alternativ gäbe es noch folgenden Dienst: https://api.forex/api/docs
Auch werden die Daten im JSON-Format als Standard geliefet.

Das Auswerten von JSON-Daten sollte nun wirklich kein Hexenwerk sein.

Gruß, Olaf
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: daten von einer WEB Seite lesen

Beitrag von Jan »

Für JSON bietet Xbase++ Json2Var(), damit wird die JSON sehr einfach abarbeitbar in ein DataObject geschrieben.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: daten von einer WEB Seite lesen

Beitrag von Jan »

Olaf,

für https://api.exchangeratesapi.io braucht man einen Schlüssel, der auch durchaus Geld kosten kann. Und Zentralbank ist das eher nicht, oder?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Re: daten von einer WEB Seite lesen

Beitrag von Lewi »

Bei Exchange ist als Basis der Schlüssel kostenlos, ist aber dann nur eingeschränkt nutzbar. Ist alles nachzulesen. Für eine täglich Abfrage von ein paar Währungen fallen i.d.R. keine Kosten an.
Benutzeravatar
engindenizoglu
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 41
Registriert: Mi, 08. Nov 2017 20:58
Wohnort: ISTANBUL

Re: daten von einer WEB Seite lesen

Beitrag von engindenizoglu »

Ich habe es mit der Funktion 'LoadfromUrl()' erledigt.

Vielen Dank für die Antworten !!!
ENGIN RENE D.

LARA ltd
http:\\www.laraelectromechanical.com
Antworten