我有一个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