Bedingungen über XML einlesen
-
Hallo zusammen,
ich möchte in C++ gerne über XML Vorbedingungen für Programmprozesse einladen.
Beispiel:
Ich habe eine vector<int> Assets {1, 2, 5, 7, 10}.
Aus einer XML-Datei werden nun Objekte eingelesen, wenn ihre Bedingungen erfüllt sind. Das kann z.B. sein:
(Element "n" in Assets vorhanden?) 2 => ja. 3 => nein. (trivial)
(Elemente "n" und "k" in Asset vorhanden?) 1&&2 => ja. 2&&3 => nein.
(Elemente "n" oder "k" in Asset vorhanden?) 1||2 => ja. 2||3 => ja. 3||4 => nein.Später sollen auch Kombinationen möglich sein, z.B. ((1&&2) || 3) - aber das lässt sich sicher aus den obigen Fällen ableiten.
Wie würdet Ihr an die Sache herangehen? Wie wären solche Bedingung in XML sinnvoll zu formulieren - und in C++ auszuwerten?
Viele Grüße
- Corak
-
Spontane Idee: Prädikate wie "Element n in Assets vorhanden" werden durch einzelne XML-Elemente (Blätter des Baums) repräsentiert. Boolsche Logik realisierst du durch Elemente, die wiederum andere Elemente enthalten.
"Elemente 3 und (2 oder 4) enthalten" wäre z.B. der Baum
und * enthalten(3) * oder * enthalten(2) * enthalten(4)Das kannst du nun in XML-Syntax umformen.
Ich nehme an, du hast diese konkrete Aufgabenstellung. Wenn du sowas produktiv einsetzen willst, gibts bessere Formate. Am flexibelsten wärst du mit Skriptsprachen wie Lua.
-
Hallo Nexus,
super, der Ansatz passt. Ist Gekauft.

XML ist leider Voraussetzung, da die Software vom User mit minimalem Aufwand veränderbar sein soll (nach Vorgabe).
Vielen Dank und einen schönen Abend!
- Corak