浏览 2092 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-24
<?xml version="1.0" encoding="ISO-8859-1" ?> <database> <tables> <table tableType="system"> <name>users</name> <fields> <field> <name>uid</name> <type>long</type> </field> <field> <name>uname</name> <type>java.lang.String</type> </field> <field> <name>firstName</name> <type>java.lang.String</type> </field> <field> <name>lastName</name> <type>java.lang.String</type> </field> <field> <name>email</name> <type>java.lang.String</type> </field> </fields> </table> <table tableType="application"> <name>documents</name> <fields> <field> <name>docid</name> <type>long</type> </field> <field> <name>name</name> <type>java.lang.String</type> </field> <field> <name>creationDate</name> <type>java.util.Date</type> </field> <field> <name>authorID</name> <type>long</type> </field> <field> <name>version</name> <type>int</type> </field> </fields> </table> </tables> </database>这个XML的结构是根节点为database database |-table |-name |-fields |-field |-field |-table |-name |-fields |-field |-field眼尖的一眼就能看穿这是一个数据库的定义文件 那么我们如何读取呢? 好吧,我们接上文,来看看吧 XMLConfiguration config = new XMLConfiguration(); config.setDelimiterParsingDisabled(true); config.setFileName("tt/test2.xml"); config.load(); Object prop = config.getProperty("tables.table.name"); if(prop instanceof Collection) { System.out.println("Number of tables: " + ((Collection) prop).size()); }前面的我就不说了,看看这句 Object prop = config.getProperty("tables.table.name"); if(prop instanceof Collection) { System.out.println("Number of tables: " + ((Collection) prop).size()); } config读取属性的时候,会去看得到的是否是多个值,如果是,则把这些值存为一个Collection 对象。 所以会打印出 Number of tables: 2在使用getProperty方法时,我们给不同的节点路径会给我们不同的值,直接看例子: //return users System.out.println(config.getProperty("tables.table(0).name")); //return system System.out.println(config.getProperty("tables.table(0)[@tableType]")); //return documents System.out.println(config.getProperty("tables.table(1).name")); //return null,因为只有两个table所以这个值为null System.out.println(config.getProperty("tables.table(2).name")); //return [docid, name, creationDate, authorID, version] //如果所要找的节点不存在唯一值,则返回Collection类型 System.out.println(config.getProperty("tables.table(1).fields.field.name")); //[long, long] //与上面的相同,返回值不唯一 System.out.println(config.getProperty("tables.table.fields.field(0).type")); //return creationDate System.out.println(config.getProperty("tables.table(1).fields.field(2).name")); 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |