哈哈,巧了,用dom或者sax都回死人的。
建议你使用jakarta的commons.digester,比较好用,
这是我用来解释配置文件并自动生存成配置界面的代码、及配置文件例:
Digester digest=new Digester();
        digest.addObjectCreate("config","com.ubi.config.demo.ConfigDialog");
        digest.addCallMethod("config/ConfigDialogTitle","setTitle", 0);
        digest.addObjectCreate("config/ConfigGroup", "com.ubi.config.demo.ConfigTab");
        digest.addCallMethod("config/ConfigGroup/title","setName",0);
        digest.addCallMethod( "config/ConfigGroup/configItem", "addConfigItem", 1 );
        digest.addCallParam( "config/ConfigGroup/configItem", 0,"name" );
        digest.addSetNext( "config/ConfigGroup", "addConfigTab" );        try {
            Object obj=digest.parse(cfgTemplateFile);
            JDialog dlg=(JDialog)obj;
            dlg.setSize(new Dimension(300,200));
            dlg.show();
            System.out.println("parsed object is "+obj);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }<?xml version="1.0" encoding="UTF-8"?>
<config>
<ConfigDialogTitle>BMC Patrol 采集配置</ConfigDialogTitle>
<ConfigGroup>
<title>基本配置</title>
<configItem name="Reader名称"></configItem>
<configItem name="Reader描述"></configItem>
<configItem name="Reader ID"></configItem>
</ConfigGroup>
<ConfigGroup>
<title>Patrol Agent连接配置</title>
<configItem name="Patrol Agent连接信息"></configItem>
</ConfigGroup>
<ConfigGroup disable="true">
<title>数据格式配置</title>
<configItem name="CPU"></configItem>
<configItem name="MEMORY"></configItem>
<configItem name="disk"></configItem>
</ConfigGroup>
</config>