Programm übel XML konfigurierbar machen?
-
Hab mal ne grundlegen Frage zu XML zur Konfiguration?
Nehmen wir an ich möchte eine Applikation entwerfen, welche durch XML statt ini etc. konfigurierbar ist. Muss/kann ich mit XSLT die Regeln und aufbau einer XML konfiguration datei definieren, und diese als basis für nen XML Parser verwenden. Wie läuft das ganze?
-
schau dir mal tinyxml an
-
Deiner Beschreibung nach ist XSLT nicht das, was du möchtest.
XSLT wandelt Xml-Dateien in andere Formate um, du möchtest aber ein Programm konfigurieren, ne.Den Aufbau und die Regeln der Xml-Konfigurationsdatei definierst du selbst, da du ja auch selbst die Applikation entwickelst. Einem Xml-Parser sollte es genügen, das du nirgends z.B. ein abschließendes Tag vergisst, d.h. das die Xml-Konfigurationsdatei wohlgeformt ist.
Aus welcher Programmiersprache soll die Applikation entstehen? Für die meisten Sprachen gibt es Xml-Apis, bzw. Parser, die du benutzen kannst, z.B. JDOM für Java, etc.
Gruß,
X.
-
XMLer schrieb:
Für die meisten Sprachen gibt es Xml-Apis, bzw. Parser, die du benutzen kannst, z.B. JDOM für Java, etc.
wenn's etwas high-leveliger sein darf: http://xstream.codehaus.org/
damit kannste deine ganzen settings in eine xml-datei 'streamem'. arbeitet wie ObjectOutput- und ObjectInputStream, nur dass als dateiformat XML verwendet wird.

-
Devel... schrieb:
Programm übel XML konfigurierbar machen?
Echt übel diese ganzen XML Sachen. :p
-
Unterschiede (Vor- und Nachteile) vom XML gegenüber Ini-Dateien -> Konfiguration mit XML
-
du suchst wahrscheinlich nach XML-Schema, damit kannst du die Struktur genau definieren und validieren: http://de.wikipedia.org/wiki/XML_Schema
-
Neben TinyXML gibt es auch folgende Klassen (aus der irrlicht toolchain ausgekoppelt):
http://www.ambiera.com/irrxml/Download:
http://prdownloads.sourceforge.net/irrlicht/irrxml-1.2.zip?downloadDas verwende ich beispielsweise für die Parametrisierung bei Games.
Einfaches Beispiel:
#include "..\src\irrXML.h" using namespace irr; using namespace io; #include <iostream> #include "conio.h" using namespace std; #include <string> // we use STL strings to store data in this example int main() { IrrXMLReader* xml = createIrrXMLReader("config.xml"); // strings for storing the data we want to get out of the file std::string modelFile; std::string messageText; std::string caption; // parse the file until end reached while(xml && xml->read()) { switch(xml->getNodeType()) { case EXN_TEXT: // in this xml file, the only text which occurs is the messageText messageText = xml->getNodeData(); break; case EXN_ELEMENT: { if (!strcmp("startUpModel", xml->getNodeName())) modelFile = xml->getAttributeValue("file"); else if (!strcmp("messageText", xml->getNodeName())) caption = xml->getAttributeValue("caption"); } break; } } cout << "startUpModel: " << modelFile << endl; cout << "messageText: " << caption << endl; // delete the xml parser after usage delete xml; getch(); return 0; }XML file:
<?xml version="1.0"?> <config> <!-- This is a config file --> <startUpModel file="dwarf.dea" /> <messageText caption="Irrlicht Engine Mesh Viewer"> Welcome to the Mesh Viewer of the "Irrlicht Engine". </messageText> </config>
-
xml-fan schrieb:
du suchst wahrscheinlich nach XML-Schema, damit kannst du die Struktur genau definieren und validieren: http://de.wikipedia.org/wiki/XML_Schema
Nö. Sucht er nicht. :p
-
Devel... schrieb:
...die Regeln und aufbau einer XML konfiguration datei definieren...
meine aussage bezog sich darauf, sry wenns nicht passt