Forum: PC-Programmierung Aus Website andere XML-Datei lesen und Statusänderungen anzeigen


von Michael T. (Gast)


Lesenswert?

Vorab:
Ich programmiere zwar schon eine ganze Weile Mikrocontroller und 
sonstiges, habe aber um Webprogrammierung etc. bisher immer einen großen 
Bogen gemacht, bzw. hatte keinen Bedarf mich damit zu beschäftigen.

Nun möchte ("muss") ich aber folgendes:

Eine Datei "status.xml" aus dem lokalen Netz lesen und den Inhalt auf 
einer lokal gespeicherten Website visualisieren, möglicht selbst 
updatend. Die anzeigende Site soll also lokal gespeichert sein, die 
status.xml muss von einem Gerät im lokalen Netz eingelesen werden.

Der Status der LEDs soll einfach z.B. als Farbwechsel eines 
Radio-Buttons oder ähnlich dargestellt werden. Schön wäre es, wenn sich 
das ganze ca. alle 500ms selbst updaten würde.

Ich vermute mal, dass man sowas mit Java Script machen kann?

Die Datei sieht z.B. so aus:
1
<response>
2
<led0>0</led0>
3
<led1>1</led1>
4
<led2>1</led2>
5
<led3>0</led3>
6
<led4>0</led4>
7
<led5>0</led5>
8
<led6>1</led6>
9
<led7>0</led7>
10
</response>

Ich habe wirklich keine recht Ahnung wo/ wonach ich da genau suchen 
muss, kann mich bitte jemand auf die richtige Spur setzen?

Vielen Dank!

von Arc N. (arc)


Lesenswert?

JavaScript XMLHttpRequest... da gibt's dann u.a. responseXML was 
wiederum ein (XML-)Document ist

https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest
https://www.w3schools.com/xml/dom_document.asp

von DPA (Gast)


Lesenswert?

Michael T. schrieb:
> Eine Datei "status.xml" aus dem lokalen Netz lesen und den Inhalt auf
> einer lokal gespeicherten Website visualisieren

Ist der Origin (der Teil schema://host:port/), der Abfragenden Seite und 
der Abgefragten Daten sie selbe? Falls nicht, muss entweder der 
Access-Control-Allow-Origin Header[1] von dem Server, der die Daten 
liefert, mitgesendet werden, oder die Daten Serverseitig abgefragt 
werden.

1) 
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin

Ansonsten sollte sowas gehen:
1
fetch("HIER URL EINSETZEN")
2
  .then(response=>response.text())
3
  .then(text=>new DOMParser().parseFromString(text,"application/xml"))
4
  .then(xml=>{
5
    console.log(xml);
6
  });

PS: Das XML ist grauenhaft. Kein <?xml, für jede Led ein anderer tag 
name, OMG.

von Dirk (Gast)


Lesenswert?

Hallo,

>Eine Datei "status.xml" aus dem lokalen Netz lesen und den Inhalt auf
>das ganze ca. alle 500ms selbst updaten würde.

überdenke deine Architektur nochmal. Die Datei wird immer geschrieben 
und gelesen. Das Speichermedium wird sich irgendwann bedanken.

Was spricht gegen MQTT in deinem Netzwerk?

http://blog.wenzlaff.de/?p=6487
https://tutorials-raspberrypi.de/datenaustausch-raspberry-pi-mqtt-broker-client/

von Hans-Georg L. (h-g-l)


Lesenswert?

Der Internet Explorer konnte das mal ...
Nannte sich data island und damit war es möglich xml Daten einzubetten 
oder mit include xml Daten laden. Das könntest du vielleicht nachbauen, 
hat wie folgt funktioniert:

Er hat die XML Datei gelesen, mit einer XSLT Transformation in HTML 
umgeformt und dann angezeigt. So etwas müsste über Scipte auch machbar 
sein.
Mit der XSLT Datei bestimmst du das Layout deiner Webseite.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.