DocumentHelper 解析xml字符串
String xml=com.jetsen.platform.util.FileUtil.getFileContent(request.getSession().getServletContext().getRealPath("/WEB-INF/platform-app-interface.xml"));
org.dom4j.Document doc = org.dom4j.DocumentHelper.parseText(xml);
org.dom4j.Element stu = doc.getRootElement();
java.util.List<java.util.Map<String,String>> l=new java.util.ArrayList<java.util.Map<String,String>>();
java.util.List<org.dom4j.Element> elist=stu.elements();
for(int i = 0 ; i < elist.size() ; i++)
{
org.dom4j.Element e=elist.get(i);
java.util.HashMap<String,String> map=new java.util.HashMap<String,String>();
map.put("id",e.attributeValue("id"));
map.put("beanId",e.attributeValue("beanId"));
map.put("methodName",e.attributeValue("methodName"));
map.put("paramClass",e.attributeValue("paramClass"));
map.put("example",e.getText());
l.add(map);
}
request.setAttribute("l",l);
SAXReader用法示例
/要上傳的配置文件的路徑
static String uploadCfgFile = "WEB-INF/conf/uploadfile.xml";
Document uploadDocument;//文檔對象實體
Map uploadMap = new HashMap();
/** * 獲取配置文件的絕對路徑 * @param request * @return */
private String getUploadCfgFilePath(ServletRequest request){
return ((HttpServletRequest) request).getSession().getServletContext().getRealPath("uploadCfgFile");
}
** * 初始化配置文件 * @param request * @return */
private Document initUploadCfgDocument(ServletRequest request){
SAXReader saxReader = new SAXReader();
try {
//得到指定文件,以流的形式對文件進行序列化
FileInputStream fis = new FileInputStream(getUploadCfgFilePath(request));
uploadDocument = (Document) saxReader.read(fis);
} catch (FileNotFoundException e) {
logger.debug(e);
} catch (DocumentException e) {
logger.debug(e);
}
return uploadDocument;
/** * 獲取配置文件 * @param request * @return */
private Document getUploadCfgDocument(ServletRequest request){
if (this.uploadDocument == null) {
this.uploadDocument = initUploadCfgDocument(request);
}
return this.uploadDocument;
}
/** * 獲取某個指定ticket節點的配置屬性 * @param request * @return */
private Map getUploadMap(ServletRequest request){
Document uploadDocument = getUploadCfgDocument(request); //得到XML的根節點(message)
Element root = uploadDocument.getRootElement();
Iterator tickets = root.element("body").element("ticketNotify").elementIterator(); //獲取ticketNotify節點下所有的ticket節點的配置屬性,並將其放到Map中
while (tickets.hasNext()) { Element ticket = (Element) tickets.next(); uploadMap.put("id", ticket.attributeValue("id"));
uploadMap.put("dealTime", ticket.attributeValue("dealTime"));
uploadMap.put("status", ticket.attributeValue("status")); } //Element.asXML方法,獲得包括該標簽的所有XML數據
// System.out.println(root.element("body").asXML());
return uploadMap;
}