User Tools

Site Tools


project:xml:application:config

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
project:xml:application:config [2015/01/29 12:12] – created 109.192.164.44project:xml:application:config [2015/09/10 19:04] (current) 91.89.129.106
Line 6: Line 6:
  
 Examples: Examples:
 +<file txt .myApplication.xml>
 +<?xml version="1.0" encoding="utf-8"?>
 +<!-- Stand: Fri Mar 16 13:36:58 CET 2012 -->
 +<applicationconfig version="0.2">
 +           <application name="myApplication">
 +                        <hostname value="myHost.example.org" />
 +                        <auth>
 +                                <login    value="johndoe"/>
 +                                <password value="secret"/>
 +                        </auth>
 +                        <optionlist>
 +                                <option name="o1" value="I" />
 +                                <option name="o2" value="II" />
 +                                <option name="o3" value="III" />
 +                        </optionlist>
 +           </application>
 +</applicationconfig>
 +</file>
  
-<code+<file txt example.pl
- use strict;  +#!/usr/bin/perl
- use XML::Application::Config;+
  
- my $cfg = new("myApplication","~/.myApplication/cfg.xml")+use strict;  
- my $login  = $cfg->find('/auth/login/@value')+use XML::Application::Config
- my $passwd = $cfg->find('/auth/password/@value');+use Data::Dumper;
  
-</code>+my $xmlfilename = $ENV{HOME}."/.myApplication.xml"; 
 + 
 +my $cfg    = XML::Application::Config->new("myApplication",$xmlfilename); 
 +my $login  = $cfg->find('auth/login/@value'); 
 +my $passwd = $cfg->find('auth/password/@value'); 
 + 
 +my $optionscount  = $cfg->find("count(optionlist/option)"); 
 + 
 +print "Options(#): '$optionscount'\n"; 
 + 
 +for (my $i=1; $i <= $optionscount; $i++) { 
 +        my $name  = $cfg->find("optionlist/option[$i]/\@name"); 
 +        my $value = $cfg->find("optionlist/option[$i]/\@value"); 
 +        $options->{$name} = $value; 
 +        print "    Option $i: '$name'='$value'\n"; 
 +
 + 
 +print Dumper($options); 
 +</file> 
 + 
 +===== bugs & wish list ===== 
 + 
 +  * Replace XML::XPath by XML::LibXML2 (2015-02-23) 
 +  * The <include/> statement allows only for including stuff from the same <application> namespace. Sometimes access to arbitarary config trees of another application would be nice. Thinking about <import/> or similar. (2015-02-23) 
 +  * Some variable replacement mechanism. Like <basedir value="/var/lib/app"/> and <workdir value="${basedir}/work"/> . Testcode currently runs in mkrepo. (2015-02-23) 
 +  * Hierarchical config file processing: /etc/<app> first, ~/.<app> next, ./.<app> each overriding the settings from its predecessors. 
 +  * ~ - expansion for xml-cfg-filename in new() would be nice (2015-09-10) 
 + 
 +=== fixed bugs === 
 +  * The .deb-package lacks the dependency of libxml-xpath-perl (2015-02-23) (fixed in 0.2.3.2) 
 +  * manpage: missing like break in SYNOPSIS, (fixed in 0.2.3.2) 
 +  * manpage: broken constructor call in SYNOPSIS (fixed in 0.2.3.2) 
 +  * manpage: xpaths with leading / in SYNOPSIS (fixed in 0.2.3.2) 
 +  * manpage: ~ - expansion is suggested, change examples to $ENV{HOME} (fixed in 0.2.3.2)
  
project/xml/application/config.1422529979.txt.gz · Last modified: 2015/01/29 12:13 (external edit)