Eine XML Schnittstelle auslesen und ausgeben
Ein Link bzw. eine XML Schnittstelle auslesen und ausgeben.
Ich muss auf eine XML Schnittstelle zugreifen, auslesen und diese formatiert ausgeben.
XML Schnittstelle:
http://www.akwl.de/notdienst/xml.php?a=4&m=plz&w=48565
Hat jemand eine idee oder kann mir jemand helfen?
Danke
tabociya
Ich muss auf eine XML Schnittstelle zugreifen, auslesen und diese formatiert ausgeben.
XML Schnittstelle:
http://www.akwl.de/notdienst/xml.php?a=4&m=plz&w=48565
Hat jemand eine idee oder kann mir jemand helfen?
Danke
tabociya
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 178201
Url: https://administrator.de/contentid/178201
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
6 Kommentare
Neuester Kommentar
Zuerst wäre das mal die ANtwort auf folgende Frage interessant:
Zu welchem Zweck brauchst du das und wie wird es weiter verarbeitet?
Wenn du die Daten bspw. in Excel importieren willst zwecks Weiterverarbeitung würde ich mir ein kleines VB-Script schreiben das mit dir XML-Datei in ein CSV parst und gut.
Wenn du das aber brauchst um innerhalb einer Website bspw. tabellarisch wiederzugeben und das ganze zur Laufzeit anhand der jeweils aktuellen Daten passieren soll, dann müsste bspw. ein PHP-Script die Datenquelle einlesen, parsen und in tabellarischer Form audgeben.
Du siehst: Zwei grundverschiedene Anforderungen bedingen zwei grundverschiedene Herangehensweisen.
Also: Wofür brauchst du das und wie soll das Ergebnis aussehen?
Manuel
Zu welchem Zweck brauchst du das und wie wird es weiter verarbeitet?
Wenn du die Daten bspw. in Excel importieren willst zwecks Weiterverarbeitung würde ich mir ein kleines VB-Script schreiben das mit dir XML-Datei in ein CSV parst und gut.
Wenn du das aber brauchst um innerhalb einer Website bspw. tabellarisch wiederzugeben und das ganze zur Laufzeit anhand der jeweils aktuellen Daten passieren soll, dann müsste bspw. ein PHP-Script die Datenquelle einlesen, parsen und in tabellarischer Form audgeben.
Du siehst: Zwei grundverschiedene Anforderungen bedingen zwei grundverschiedene Herangehensweisen.
Also: Wofür brauchst du das und wie soll das Ergebnis aussehen?
Manuel
Hallo,
Du kannst, wenn du es unbedingt selbst machen willst, dir natürlich auch die Daten in Excel direkt vom zuständigen Amtsapotheker geben lassen. Oder als Textdatei wenn dein Amtsapotheke das kennt. somit ist das zugfreifen auf die Webseite der AKWL nicht direkt nötig und du kannst es evtl. besser verarbeiten, einbauen. Der Amtsapotheker ist nämlich für dei Erstellung und Aktualisierung der Notdienste zuständig. Und ja, es gibt im laufenden Jahr etliche änderungen der Apotheker untereinander..
Gruß,
Peter
Zitat von @tabociya:
Ich habe einen Bekannten. Altherren-Fussball. Er hat eine Apotheke. Im Schaufenster hat er ein Monitor. Darauf möchte er . . . dann die Logo der Apotheke mit Öffnungszeiten und eine AVI datei ...
Das ist eigentlich gut wenn du schnell mal ein paar Aspirin brauchst. Aber, diese Kombination soll deine Freizeit (?) ausfüllen, einen Funktionsfähigen automatischen Notdienstkalender mit Apotheken TV liefern und dem Apotheker die EUR 75,00 was eine Profilösung und den Jährliche Datenbestand kostet sparen? Unterschätze nicht den aufwand so etwas umzusetzen und dann noch stabil, sauber und Aktuell am laufen zu halten. Ich habe gerade gesternanbend noch in einer Apotheke den Notdienstplan für 2012 eingespielt. Kostet EUR 75 und hat 3 Minuten gedauert. Oder du Pflegst die Daten selbst ein (365 Tage mit 1 - 2 Apotheken je nach Kreis / Stadt usw täglich macht ca. 400 Eintragungen mal 1 Minute pro Eintrag macht ca. 400 Minuten (oder 6,66 Stunden)) was auch problemlos machbar ist. EVAS bekommt die daten direkt von der AKWL. Das war z.b. der EVAS Notdienstplaner. Dafür kann man den nicht selbst erstellen, Pflegen, Warten und neue Funktionen einbauen. Der EVAS lässt sich auch problemlos in bestehende Werbeprogramme etc einbinden. Oft zu sehen in Kombination mit Teleapotheke. Da ist alles schon Fertig, wird laufend erweitert und den Gesetzlichen bestimmungen angepasst und auch die Wünsche der Apotheker fließen in die neuen Versionen mit ein.Ich habe einen Bekannten. Altherren-Fussball. Er hat eine Apotheke. Im Schaufenster hat er ein Monitor. Darauf möchte er . . . dann die Logo der Apotheke mit Öffnungszeiten und eine AVI datei ...
Du kannst, wenn du es unbedingt selbst machen willst, dir natürlich auch die Daten in Excel direkt vom zuständigen Amtsapotheker geben lassen. Oder als Textdatei wenn dein Amtsapotheke das kennt. somit ist das zugfreifen auf die Webseite der AKWL nicht direkt nötig und du kannst es evtl. besser verarbeiten, einbauen. Der Amtsapotheker ist nämlich für dei Erstellung und Aktualisierung der Notdienste zuständig. Und ja, es gibt im laufenden Jahr etliche änderungen der Apotheker untereinander..
Gruß,
Peter
Hallo tabociya.
Bin zufällig über diesen Thread gestolpert.
Wie es aussieht garnicht. So wie ich dich verstanden habe soll die Seite ja clientseitig laufen. Nachdem ich mir den Spaß mal angesehen habe, bin ich darüber gestolpert, dass der Inhalt der XML mit dem angegebenen
Workaround: Das Ganze vorher in einen ADO Stream einlesen und im richtigen Format wieder ausgeben. Das hat 3 Nachteile:
1. läuft nur auf Windows
2. clientseitig hat M$ das Erstellen dieses ActiveX Objekts für Browser abgeschaltet
3. Antivir Software stuft die Erstellung manchmal als potenziell gefährlich ein und verhindert deren Ausführung
Zu Punkt 1: Lass es auf Windows laufen
Zu Punkt 2: Statt im Browser kannst du das Ding als Stand-Alone laufen lassen (Dateiendung .HTA)
Zu Punkt 3: Füge das Script ggf. als Ausnahme hinzu
*.hta
Grüße
rubberman
Bin zufällig über diesen Thread gestolpert.
Wie es aussieht garnicht. So wie ich dich verstanden habe soll die Seite ja clientseitig laufen. Nachdem ich mir den Spaß mal angesehen habe, bin ich darüber gestolpert, dass der Inhalt der XML mit dem angegebenen
encoding="ISO-8859-1"
nicht überein zu stimmen scheint. Zumindest konnte ich mit dem Inhalt kein XML DOM Document erstellen.Workaround: Das Ganze vorher in einen ADO Stream einlesen und im richtigen Format wieder ausgeben. Das hat 3 Nachteile:
1. läuft nur auf Windows
2. clientseitig hat M$ das Erstellen dieses ActiveX Objekts für Browser abgeschaltet
3. Antivir Software stuft die Erstellung manchmal als potenziell gefährlich ein und verhindert deren Ausführung
Zu Punkt 1: Lass es auf Windows laufen
Zu Punkt 2: Statt im Browser kannst du das Ding als Stand-Alone laufen lassen (Dateiendung .HTA)
Zu Punkt 3: Füge das Script ggf. als Ausnahme hinzu
*.hta
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>Notdienstbereite Apotheken</title>
<hta:application
id="oHTA"
applicationname="myApp"
scroll="yes"
singleinstance="yes"
windowstate="maximize"
/>
<style type="text/css">
/* <![CDATA[ */
body {background-color:#EEF0FF; font-family:Helvetica; font-size:10pt; margin:10px 20px 10px 20px;}
table {background-color:#E0EEF0; font-family:Helvetica; font-size:12pt;}
table th {background-color:#A0EEF0;}
/* ]]> */
</style>
<script type="text/javascript">
/* <![CDATA[ */
function getxml()
{
var oADOStream = null;
var oXmlDoc = null;
var oXMLHTTP = null;
oXMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
if (oXMLHTTP) {
oXMLHTTP.open('GET',"http://www.akwl.de/notdienst/xml.php?a=4&m=plz&w=48565",true);
oXMLHTTP.onreadystatechange = function () {
if (oXMLHTTP.readyState == 4) {
oXmlDoc = new ActiveXObject("MSXML2.DOMDocument");
oXmlDoc.async = false;
oXmlDoc.validateOnParse = false;
oXmlDoc.resolveExternals = false;
oADOStream = new ActiveXObject("ADODB.Stream");
oADOStream.type = 1;
oADOStream.mode = 3;
oADOStream.open;
oADOStream.write(oXMLHTTP.responseBody);
oADOStream.position = 0;
oADOStream.type = 2;
oADOStream.charSet = "ISO-8859-1";
oXmlDoc.loadXML(oADOStream.readText);
oADOStream.close;
var txt = "<h3><u>" + oXmlDoc.documentElement.selectSingleNode("//beschreibung").text;
txt += "</u></h3><h5>Zeitraum: ";
txt += oXmlDoc.documentElement.selectSingleNode("//zeitraum").text;
txt += "</h5><table border=\"1\"><tr><th>Datum</th><th>Apotheke</th>";
txt += "<th>Strasse</th><th>PLZ</th><th>Ort</th><th>Telefon</th></tr>";
var colNotdienste = oXmlDoc.documentElement.selectNodes("//notdienst");
for (var i = 0; i < colNotdienste.length; i++)
{
txt += "<tr><td>" + colNotdienste[i].childNodes.text + "</td><td>";
txt += colNotdienste[i].childNodes[1].text + "</td><td>";
txt += colNotdienste[i].childNodes[2].text + "</td><td>";
txt += colNotdienste[i].childNodes[3].text + "</td><td>";
txt += colNotdienste[i].childNodes[4].text + "</td><td>";
txt += colNotdienste[i].childNodes[5].text + "</td></tr>";
}
txt += "</table>";
document.getElementById("body").innerHTML = txt;
}
};
oXMLHTTP.send(null);
}
}
/* ]]> */
</script>
</head>
<body id="body" onload="getxml()" />
</html>
Grüße
rubberman