tabociya
Goto Top

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

Content-Key: 178201

Url: https://administrator.de/contentid/178201

Printed on: April 25, 2024 at 12:04 o'clock

Member: manuel-r
manuel-r Dec 29, 2011 at 22:00:06 (UTC)
Goto Top
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
Member: tabociya
tabociya Dec 29, 2011 at 22:55:23 (UTC)
Goto Top
Hallo Manuel,

Danke für deine Antwort

Ich habe einen Bekannten. Altherren-Fussball. Er hat eine Apotheke. Im Schaufenster hat er ein Monitor. Darauf möchte er abends ab eine bestimmte Uhrzeit die Nottdiensthabende Apotheken anzeigen.
Tagsüber soll dann die Logo der Apotheke mit Öffnungszeiten und eine AVI datei bzw. wenn vorhanden, 2 bis 3 Artikel, die im Angbeot sind abwechselnd angezeigt werden.
Ob als Webseite oder mit Java oder VB, egal.

ich habe auch an PHP gedacht.
Bischen mit HTML und PHP kenne ich mich aus. Aber wie ich das machen kann, weiss ich noch nicht.

Gruß

Tabociya
Member: Pjordorf
Pjordorf Dec 30, 2011 at 02:31:59 (UTC)
Goto Top
Hallo,

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.

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
Member: tabociya
tabociya Jan 04, 2012 at 16:58:17 (UTC)
Goto Top
Danke für den tipp.
ich habe mich mit dem Programm beschäftigt und habe meinen bekannten davon erzählt.
er will das programm nicht haben, weil er sehr kompliziert findet.
http://www.akwl.de/notdienst/xml.php?a=4&m=plz&w=48565
mit diesem Link wird eine xml datei erzeugt.
wie kann ich diese Datetei auslesen und im Webbrowser anzeigen-

Danke
Member: rubberman
rubberman Jan 08, 2012 at 17:59:15 (UTC)
Goto Top
Hallo tabociya.

Bin zufällig über diesen Thread gestolpert.

Zitat von @tabociya:
wie kann ich diese Datetei auslesen und im Webbrowser anzeigen-

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 face-wink
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
Member: tabociya
tabociya Jan 17, 2012 at 21:25:20 (UTC)
Goto Top
Hallo Rubermann,

ich war einige Tage Krank. Daher habe ich deine Antwort gerade erst gesehen.
Vielen Dank. Ich werde es morgen ausprobieren.

Gruß
Tabociya