NEWS
Mit Parser eine XML auswerten Datenpunkt erstellen
-
Hallo Gemeinde,
ich bräuchte mal eure Hilfe. Ich möchte aus folgernder XML Datei (http://192.168.1.11/input_emz.xml)
mit dem Parser folgende Werte in die Datenbank schreiben :
zb. abfrage Input 1 den werte "Soll oder Nicht Soll"
Mir ist nicht klar wie ich den Regex Befehl schreibe, zum hintergrund es handelt sich hier um eine Alarmanlage die damit gewisse Zustände anzeigt die ich auswerten will und in der VIS anzeigen möchte!
Muss ich jetzt im Parser jeden einzelnen Eingang abfragen (Was auch OK wäre) oder geht das auch zusammen (Es handelt sich um max 100 Einträge in der XML.Vielen Dank für eure Mühe und Rückmeldung
<EMZ_Input> <Info> <Headline>Zustand der EMZ Eingaenge</Headline> <Column1>Eingangsbezeichnung</Column1> <Column2>Zustand</Column2> <Column3>Anzeige</Column3> <Column4>Physik</Column4> <Column5>MG Nr.</Column5> <Poll>5000</Poll> </Info> <Input nr="1"> <Condition>Soll</Condition> <PH_Condition> </PH_Condition> <Led>RED_OFF</Led> <Text> </Text> </Input> <Input nr="2"> <Condition>Soll</Condition> <PH_Condition> </PH_Condition> <Led>RED_OFF</Led> <Text> </Text> </Input> <Input nr="3"> <Condition>Soll</Condition> <PH_Condition> </PH_Condition> <Led>RED_OFF</Led> <Text> </Text>
-
@mikedjx sagte in Mit Parser eine XML auswerten Datenpunkt erstellen:
mit dem Parser folgende Werte
mit dem Parser musst du jeden Eintrag einzeln auslesen, was aber nur einen Aufruf "kostet".
Dafür wird dir dann in den Objekten auch direkt der entsprechende Datenpunkt angelegt -
@homoran
Habe es jetzt erst mal so gelöst im Parser REGEX :(?<=<Condition>)[\s\S]*?(?=</)
Und dann im Parser den NUM Wert auf 0 gesetzt für die erste Meldung und dann hochgezählt.
Bis jetzt funktioniert es und sieht ganz gut aus!
-
@mikedjx
wenn es mal probleme macht gibt es schöne bibliotheken die man verwenden kann. bspw
https://www.npmjs.com/package/xml2json
verwandelt dir xml in ein json objekt und umgekehrt -
@mikedjx sagte in Mit Parser eine XML auswerten Datenpunkt erstellen:
Und dann im Parser den NUM Wert auf 0 gesetzt für die erste Meldung und dann hochgezählt.
das ist gut, aber Condition kann ein Problem sein, ich weiß nicht was in der nächsten Zeile noch kommt
Mein RegEx wäre
on>(\w+)<\/C
Analog danned>(\w+)<\/L
um mit dem Zustand der LED arbeiten zu können -