当前位置: 代码迷 >> Java Web开发 >> 关于XML解析的有关问题
  详细解决方案

关于XML解析的有关问题

热度:67   发布时间:2016-04-17 11:04:50.0
关于XML解析的问题,请教高手
我有一个xml文件内容是这样的
---------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<appconfig>
<sqlCfg>
<path></path>
</sqlCfg>

<!-- 数据库连接配置文件路径 -->
<dataBaseCfg id="text"><![CDATA[./database.xml]]></dataBaseCfg>
<dataBaseCfg id="text1"><![CDATA[./database.xml]]></dataBaseCfg>

</appconfig>
----------------------------------------------
现在我要将dataBaseCfg节点解析存入一个map<String, String>中,怎么处理,我使用的digester解析。

在线等待解决。

------解决方案--------------------
http://www.blogjava.net/alex/archive/2006/09/06/68148.html
仅供参考
------解决方案--------------------
参考下以下代码:
Java code
public class Test {    private static Logger logger = Logger.getLogger(Test.class.getName());    public  static Map dataBase=new HashMap();;    /**     * @param args     * @throws SAXException      * @throws IOException      */    public static void main(String[] args) throws IOException, SAXException {        Digester digester = new Digester();        digester.setValidating(false);        digester.addRule("appconfig/dataBaseCfg", new MyRule("put",2));        digester.addRule("appconfig/dataBaseCfg", new CallParamRule(0,"id"));        digester.addRule("appconfig/dataBaseCfg", new CallParamRule(1));        digester.parse(Test.class.getResourceAsStream("config.xml"));        System.out.println(dataBase);    }    }class MyRule extends CallMethodRule{    public MyRule(String methodName,int param) {        super(methodName, param);    }        @Override    public void begin(Attributes attributes) throws Exception {        digester.push(Test.dataBase);        super.begin(attributes);    }        @Override    public void end() throws Exception {        super.end();        digester.pop();    }}
------解决方案--------------------
楼上+1
  相关解决方案