Estoy considerando guardar la configuración de mi aplicación como un xml en lugar de usar el registro, pero me está costando entender y usar OmniXML.Cómo usar OmniXML para guardar la configuración de una aplicación en un archivo xml
Sé que algunos de ustedes aquí usan y recomiendan OnmiXML, así que espero que alguien me pueda dar algunos consejos.
Estoy acostumbrado a usar TRegistry para crear una nueva clave si no existe, pero parece que no puedo encontrar ninguna opción similar en OmniXML.
Básicamente lo que quiero hacer es guardar la configuración en diferentes niveles XML, algo como esto:
<ProgramName version="6">
<profiles>
<profile name="Default">
<Item ID="aa" Selected="0" />
<Item ID="bb" Selected="1" />
</profile>
</profiles>
<settings>
<CheckForUpdates>1</CheckForUpdates>
<CheckForUpdatesInterval>1</CheckForUpdatesInterval>
<ShowSplashScreen></ShowSplashScreen>
</settings>
</ProgramName>
Ahora, cuando se ejecuta por primera vez el programa que no tendrá el archivo XML por lo que tendrá que crear toda la subniveles. Con TRegistry fue fácil, simplemente llame a OpenKey (pathtokey, True) y la clave se creará si no existe. ¿Hay alguna manera comparable de hacer lo mismo con OmniXML? calle detrás como:
SetNodeStr('./settings/CheckForUpdates', True);
que crearía el "camino" si no existe ya.
(Primoz aquí) Solo para evitar confusiones: OmniXML fue escrito por Miha Remec, solo contribuí con algunas partes pequeñas. Y +1 por la respuesta, es exactamente lo que escribiría. – gabr
Gracias paolorossi por la respuesta y el código. Lamentablemente, también tengo que leer/escribir cientos de valores por programación, por lo que para esa parte en particular, realmente necesito crear/leer/eliminar manualmente los datos. ¿Alguien sabe si es posible crear automáticamente nodos precedentes si todavía no existen? Y finalmente un gran agradecimiento a Miha Remec y Primoz Gabrijelcic por OnmiXML y GpFluentXML respectivamente. – smartins