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


Anmelden zum Antworten