Seite 1 von 1

xpath Abfrage mit variable

Verfasst: 21. Apr 2023 14:17
von filmgucker2
Hallo mal wieder,

ich kämpfe immer noch mit meinen enigma2 webif Sendern...

Der http Befehl /web/getallservices bringt mir alle Sender und Bouqets mit Namen und
Sender IDs usw.

Folgendes dsl script bringt mir die Sender ID in das string item AATestchannel:

Code: Alles auswählen

val url = "http://192.168.188.36/web/getallservices"
val abfrage = sendHttpGetRequest(url)
var transxpath = transform("XPATH", "*//e2servicelist/e2service[e2servicename='arte HD']/e2servicereference/text()", abfrage)
sendCommand("AATestchannel", transxpath)
Nun möchte ich aber den Namen des Senders als Variable in die transform Abfrage aufnehmen.
Habe probiert:

Code: Alles auswählen

val programm = Auswahl.state.toString
val url = "http://192.168.188.36/web/getallservices"
val abfrage = sendHttpGetRequest(url)
var transxpath = transform("XPATH", "*//e2servicelist/e2service[e2servicename='programm']/e2servicereference/text()", abfrage)
sendCommand("AATestchannel", transxpath)
...kommt nix. Herumgelesen im Netz...Ein $-Zeichen vor programm. Auch nichts. Wenn ich das val programm in die
Abfrage aufnehmen möchte, wie geht das? PS: "Auswahl" ist das string item aus openhab.

VG
Knut

Re: xpath Abfrage mit variable

Verfasst: 21. Apr 2023 23:29
von udo1toni
Du musst die Konstante auch als Konstante in den Pfad einbauen.

Code: Alles auswählen

val programm = Auswahl.state.toString
val url = "http://192.168.188.36/web/getallservices"
val abfrage = sendHttpGetRequest(url)
val path = "*//e2servicelist/e2service[e2servicename='" + programm + "']/e2servicereference/text()"
var transxpath = transform("XPATH", path , abfrage)
AATestchannel.sendCommand(transxpath)
Hier als weitere Konstante, natürlich kannst Du das auch direkt in in den Befehl einbauen, so ist es aber vielleicht etwas besser lesbar...
Beachte auch, dass die Anführungszeichen Teil der beiden Teilstrings links und rechts vom Programmnamen sind.

Re: xpath Abfrage mit variable

Verfasst: 22. Apr 2023 00:13
von filmgucker2
Besten Dank mal wieder!