再來個更加復(fù)雜一點(diǎn)的XML
- <?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的結(jié)構(gòu)是根節(jié)點(diǎn)為database
- database
- |-table
- |-name
- |-fields
- |-field
- |-field
- |-table
- |-name
- |-fields
- |-field
- |-field
眼尖的一眼就能看穿這是一個數(shù)據(jù)庫的定義文件
那么我們?nèi)绾巫x取呢,?
好吧,,我們接上文,來看看吧
- 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
對象,。
所以會打印出
在使用getProperty方法時,我們給不同的節(jié)點(diǎn)路徑會給我們不同的值,,直接看例子:
- //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,因?yàn)橹挥袃蓚€table所以這個值為null
- System.out.println(config.getProperty("tables.table(2).name"));
- //return [docid, name, creationDate, authorID, version]
- //如果所要找的節(jié)點(diǎn)不存在唯一值,,則返回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"));
|