hi all,
I suppose something went wrong with my attachments.
Cheers,
G�nter
---------------------------------------------
Properties.xml:
---------------------------------------------
<property>
<database name="db1">
<user>user1</user>
</database>
<database name="db2">
<user>user2</user>
</database>
</property>
---------------------------------------------
import java.io.*;
import org.apache.commons.digester.Digester;
public class PropertiesParser {
public static void main(String[] args) {
PropertiesParser pp = new PropertiesParser();
try {
pp.run(args[0]);
} catch (Exception e) {
e.printStackTrace();
}
}
public void run(String XMLFile) {
try {
Digester digester = new Digester();
digester.setValidating(false);
digester.addObjectCreate("property",
Property.class);
digester.addObjectCreate("property/database",
Database.class);
digester.addSetNext("property/database",
"addDatabase");
digester.addSetProperties("/property/database");
digester.addBeanPropertySetter("property/database/user", "user");
System.out.println("XMLFile = " + XMLFile);
File input = new File(XMLFile);
Property p = (Property) digester.parse(input);
// sample how to extract the values
String user, name;
Database d;
System.out.println("\nfirst entry:");
d = (Database) p.databases.get(0);
user = d.getUser();
System.out.println("user=" + user);
name = d.getName();
System.out.println("name=" + name);
System.out.println("\nsecond entry:");
d = (Database) p.databases.get(1);
user = d.getUser();
System.out.println("user=" + user);
name = d.getName();
System.out.println("name=" + name);
} catch (Exception exc) {
exc.printStackTrace();
}
}
}
---------------------------------------------
import java.util.ArrayList;
public class Property {
protected ArrayList databases;
public Property() {
databases = new ArrayList();
}
public void addDatabase(Database rhs) {
databases.add(rhs);
}
public Database getDatabase(int index) {
return (Database) databases.get(index);
}
}
---------------------------------------------
public class Database {
private String user;
private String name;
public Database() {
}
public Database(String user, String name) {
this.user = user;
this.name = name;
}
public String getUser() {
return this.user;
}
public void setUser(String user) {
this.user = user;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
---------------------------------------------
output:
---------------------------------------------
XMLFile = Properties.xml
first entry:
user=user1
name=null
second entry:
user=user2
name=null
---------------------------------------------
-----Urspr�ngliche Nachricht-----
Von: Tatu Vanhanen [mailto:[EMAIL PROTECTED]
Gesendet am: Donnerstag, 18. M�rz 2004 07:32
An: Jakarta Commons Users List
Betreff: RE: [Digester] addSetProperties
Check that the Database class has a valid bean setter method for the "name"
property, i.e.
"public void setName(String name)".
- Tatu V.
> -----Original Message-----
> From: Pretterhofer, Guenter (ext.)
> [mailto:[EMAIL PROTECTED]
> Sent: 17. maaliskuuta 2004 17:08
> To: [EMAIL PROTECTED]
> Subject: [Digester] addSetProperties
>
>
> hi all,
>
> maybe somebody can help me with the following problem?
>
> xml-file:
> <property>
> <database name="db1">
> <user>user1</user>
> </database>
> <database name="db2">
> <user>user2</user>
> </database>
> </property>
>
> a small excerpt of the Java source:
> digester.addObjectCreate("property", Property.class);
> digester.addObjectCreate("property/database", Database.class);
> digester.addSetNext("property/database", "addDatabase");
> digester.addSetProperties("/property/database", "name", "name");
> digester.addBeanPropertySetter("property/database/user", "user");
>
>
> when i print out name and user the output is the following:
> user=user1
> name=null
> user=user2
> name=null
>
> I don't understand why name is always null ...
> what am I doing wrong?
>
> thanks for your help
> g�nter
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]