下面我們主要寫一下 解析XML文件的工具類,這個裏面很多方法。我基本都貼出來,我也說過,解析XML有很多方法,我採用了最原始的。所以很累,你們自己去實現吧。
在這個類裏面有幾個關鍵點要說:
1.解析XML文檔,就最開始定義的那個,最終返回是Map數據集
2.在次之間,可能需要涉及到生成統計圖像等,都是在解析過程中完成的
3.在方法Map數據集中,如果是word中的表格,Key就是表格在word中的序列,我曾經說過,替換表格是按照序列來的;單個標籤key就是標籤本身作爲key
4.注意反正很多細節的東西,我就不很細緻的講了
下面貼出部分代碼:
1.總入口傳入的是相關參數、報告類型:
/**
* 返回 MAP 數據
* @return
*/
public HashMap<String,Object> returnValue(String peportXmlPath,Map<String,String> paramMap,String docType){
HashMap<String,Object> map = this.getAllData(peportXmlPath, paramMap,docType);
return map;
}
2.根據SQL語句執行查詢,返回Map數據集
/**
* 執行SQL查詢
* @param peportXmlPath
* @param paramMap
* @param docType
* @return
*/
public HashMap<String,Object> getAllData(String peportXmlPath,Map<String,String> paramMap,String docType){
conn = super.getSession().connection();
HashMap<String,Object> map = null;
Map<String,List<DataGroupsBean>> sqlMap = getAllSql(peportXmlPath);
map = new HashMap<String,Object>();
peportXmlPath = peportXmlPath.substring(peportXmlPath.lastIndexOf("/")+1,peportXmlPath.length()-4);
//===============解析Rep標籤開始====================
//if(sqlMap.get(peportXmlPath) != null && paramMap != null){//如果map不爲空
//map = new HashMap<String,List<DataGroupsBean>>();
Set<Entry<String, List<DataGroupsBean>>> sets = sqlMap.entrySet();
Iterator<Entry<String, List<DataGroupsBean>>> it = sets.iterator();
while (it.hasNext()) {
Map.Entry<String,List<DataGroupsBean>> mapEntry = (Map.Entry<String,List<DataGroupsBean>>)it.next();
//String key = String.valueOf(mapEntry.getKey());
List<DataGroupsBean> dataGroupsList = mapEntry.getValue();
if(dataGroupsList != null && dataGroupsList.size() > 0){
for (int i = 0; i < dataGroupsList.size(); i++) {
DataGroupsBean dataGroupsBean = dataGroupsList.get(i);
if(dataGroupsBean != null){
List<DataGroupBean> dataGroupList = dataGroupsBean.getDataGroupList();
if(dataGroupList != null && dataGroupList.size() > 0){
for (int j = 0; j < dataGroupList.size(); j++) {
DataGroupBean dataGroupRepBean = dataGroupList.get(j);//取得報告bean
if(dataGroupRepBean != null){
//String dataGroupRepName = dataGroupRepBean.getDataGroupName();
List<DataSetsBean> dataSetsRepList = dataGroupRepBean.getDataSetsList();//取得datasets list
//處理 dataSetsRepList 相關內容
if(dataSetsRepList != null && dataSetsRepList.size() > 0){
for (DataSetsBean dataSetsRepBean : dataSetsRepList) {
//String dataSetsRepName = dataSetsRepBean.getDataSetsName();
List<DataSetBean> dataSetRepList = dataSetsRepBean.getDataSetList();
if(dataSetRepList != null && dataSetRepList.size() > 0){//dataSetRep不爲空
for (DataSetBean dataSetRepBean : dataSetRepList) {
//String dataSetRepName = dataSetRepBean.getDataSetName();
String sqlStr = dataSetRepBean.getQueryString();//取得SQL語句
String sort = dataSetRepBean.getSort();//排序
List<FieldBean> fieldList = (List<FieldBean>)dataSetRepBean.getFieldList();
String type = dataSetRepBean.getType();
map = queryValue(map,sqlStr, paramMap, fieldList, type,conn,sort,docType);//調用方法
}
}
}
}
//處理 dataTranstorRepList 相關內容
//取得dataTranstor list
List<DataTranstorBean> dataTranstorRepList = dataGroupRepBean.getDataTranstorList();
if(dataTranstorRepList != null && dataTranstorRepList.size() > 0){
for (DataTranstorBean dataTranstorRepBean : dataTranstorRepList) {
//String dataTranstorsRepName = dataTranstorRepBean.getDataTranstorsName();
List<DataSetBean> dataSetRepList = dataTranstorRepBean.getDataSetList();
if(dataSetRepList != null && dataSetRepList.size() > 0){//dataSetRep不爲空
for (DataSetBean dataSetRepBean : dataSetRepList) {
String dataSetRepName = dataSetRepBean.getDataSetName();
String dataSetRepCnName = dataSetRepBean.getDataSetCnName();//中文名稱
String sqlStr = dataSetRepBean.getQueryString();//取得SQL語句
List<FieldBean> fieldList = (List<FieldBean>)dataSetRepBean.getFieldList();
String type = dataSetRepBean.getType();
if(CommonUtils.isNotNull(type) && type.indexOf("CI") == -1){
for (FieldBean filedbean : fieldList) {
String filedKey = filedbean.getKey();
String ctype = filedbean.getCtype();
String url = filedbean.getUrl();
if(CommonUtils.isNotNull(url)){
map.put(filedKey, XmlPathDef.getWordFValue(ctype,url));
}
}
}else{
map.put(dataSetRepName, this.getPhotoUrl(sqlStr,docType,paramMap,dataSetRepCnName,fieldList,conn,type));
}
}
}
}
}
//===============解析Rep標籤結束====================
}
}
}
}
}
}
}
// }
//關閉連接
XmlPathDef.closeComm(conn, stmt, rs);
return map;
}
3.解析相應的SQL語句,返回Map
/**
* 解析比較 找出將要執行的SQL語句
* @param tagXmlPath
* @param peportXmlPath
* @return
*/
public Map<String,List<DataGroupsBean>> getAllSql(String peportXmlPath){
Map<String,DataGroupBean> dataGroupMap = mapData;
Map<String,List<DataGroupsBean>> dataGroupsMap = parseReportInfo(peportXmlPath);
peportXmlPath = peportXmlPath.substring(peportXmlPath.lastIndexOf("/")+1,peportXmlPath.length()-4);
//===============解析Rep標籤開始====================
//if(dataGroupsMap.get(peportXmlPath) != null){//如果map不爲空
Set<Entry<String, List<DataGroupsBean>>> sets = dataGroupsMap.entrySet();
Iterator<Entry<String, List<DataGroupsBean>>> it = sets.iterator();
while (it.hasNext()) {
Map.Entry<String,List<DataGroupsBean>> mapEntry = (Map.Entry<String,List<DataGroupsBean>>)it.next();
//String key = String.valueOf(mapEntry.getKey());
List<DataGroupsBean> dataGroupsList = mapEntry.getValue();
if(dataGroupsList != null && dataGroupsList.size() > 0){
for (int i = 0; i < dataGroupsList.size(); i++) {
DataGroupsBean dataGroupsBean = dataGroupsList.get(i);
if(dataGroupsBean != null){
List<DataGroupBean> dataGroupList = dataGroupsBean.getDataGroupList();
if(dataGroupList != null && dataGroupList.size() > 0){
for (int j = 0; j < dataGroupList.size(); j++) {
DataGroupBean dataGroupRepBean = dataGroupList.get(j);//取得報告bean
if(dataGroupRepBean != null){
String dataGroupRepName = dataGroupRepBean.getDataGroupName();
//取得datasets list
List<DataSetsBean> dataSetsRepList = dataGroupRepBean.getDataSetsList();
if(dataSetsRepList != null && dataSetsRepList.size() > 0){
for (DataSetsBean dataSetsRepBean : dataSetsRepList) {
String dataSetsRepName = dataSetsRepBean.getDataSetsName();
List<DataSetBean> dataSetRepList = dataSetsRepBean.getDataSetList();
if(dataSetRepList != null && dataSetRepList.size() > 0){//dataSetRep不爲空
for (DataSetBean dataSetRepBean : dataSetRepList) {
String dataSetRepName = dataSetRepBean.getDataSetName();
//===============解析Rep標籤結束====================
//===============解析tag標籤開始====================
//判斷 dataGroupRepName 名稱是否相同
if(dataGroupMap.get(dataGroupRepName) != null){//如果map不爲空
Set<Entry<String, DataGroupBean>> set = dataGroupMap.entrySet();
Iterator<Entry<String, DataGroupBean>> its = set.iterator();
while (its.hasNext()) {
Map.Entry<String,DataGroupBean> entry = (Map.Entry<String,DataGroupBean>)its.next();
DataGroupBean dataGroupTagBean = (DataGroupBean)entry.getValue();//取得標籤bean
//System.out.println(">>>>>>>>>>>>>>>>> "+ dataGroupTagBean);
if(dataGroupTagBean != null){
List<DataSetsBean> dataSetsTagList = dataGroupTagBean.getDataSetsList();
if(dataSetsTagList != null && dataSetsTagList.size() > 0){
for (DataSetsBean dataSetsTagBean : dataSetsTagList) {
String dataSetsTagName = dataSetsTagBean.getDataSetsName();
//判斷 dataSets 名稱是否相同
if(dataSetsRepName.equals(dataSetsTagName)){
List<DataSetBean> dataSetTagList = dataSetsTagBean.getDataSetList();
if(dataSetTagList != null && dataSetTagList.size() > 0){
for (DataSetBean dataSetTagBean : dataSetTagList) {
String dataSetTagName = dataSetTagBean.getDataSetName();
//判斷 dataSet 名稱是否相同
if(dataSetRepName.equals(dataSetTagName)){
//System.out.println("sql++++++++++++++++++++++="+ dataSetTagBean.getQueryString());
//map.put(dataSetTagName, sql);
dataSetRepBean.setQueryString(dataSetTagBean.getQueryString());
dataSetRepBean.setParameterList(dataSetTagBean.getParameterList());
dataSetRepBean.setDataSetCnName(dataSetTagBean.getDataSetCnName());
dataSetRepBean.setFieldList(dataSetTagBean.getFieldList());
dataSetRepBean.setType(dataSetTagBean.getType());
}
}
}
}
}
}
}
}
}
//===============解析tag標籤結束====================
//dataSetRepList.add(dataSetRepBean);
}
}
}
}
//取得dataTranstor list
List<DataTranstorBean> dataTranstorRepList = dataGroupRepBean.getDataTranstorList();
//===============解析tag標籤開始====================
if(dataTranstorRepList != null && dataTranstorRepList.size() > 0){
for (DataTranstorBean dataTranstorRepBean : dataTranstorRepList) {
String dataTranstorsRepName = dataTranstorRepBean.getDataTranstorsName();
List<DataSetBean> dataSetRepList = dataTranstorRepBean.getDataSetList();
if(dataSetRepList != null && dataSetRepList.size() > 0){//dataSetRep不爲空
for (DataSetBean dataSetRepBean : dataSetRepList) {
String dataSetRepName = dataSetRepBean.getDataSetName();
//判斷 dataGroupRepName 名稱是否相同
if(dataGroupMap.get(dataGroupRepName) != null){//如果map不爲空
Set<Entry<String, DataGroupBean>> set = dataGroupMap.entrySet();
Iterator<Entry<String, DataGroupBean>> its = set.iterator();
while (its.hasNext()) {
Map.Entry<String,DataGroupBean> entry = (Map.Entry<String,DataGroupBean>)its.next();
DataGroupBean dataGroupTagBean = (DataGroupBean)entry.getValue();//取得標籤bean
//System.out.println(">>>>>>>>>>>>>>>>> "+ dataGroupTagBean);
if(dataGroupTagBean != null){
//List<DataSetsBean> dataSetsTagList = dataGroupTagBean.getDataSetsList();
//============暫未解析===============
List<DataTranstorBean> dataTranstorTagList = dataGroupTagBean.getDataTranstorList();
if(dataTranstorTagList != null && dataTranstorTagList.size() > 0){
for (DataTranstorBean dataTranstorTagBean : dataTranstorTagList) {
String dataTranstorTagName = dataTranstorTagBean.getDataTranstorsName();
//判斷 dataSets 名稱是否相同
if(dataTranstorsRepName.equals(dataTranstorTagName)){
List<DataSetBean> dataSetTagList = dataTranstorTagBean.getDataSetList();
if(dataSetTagList != null && dataSetTagList.size() > 0){
for (DataSetBean dataSetTagBean : dataSetTagList) {
String dataSetTagName = dataSetTagBean.getDataSetName();
//判斷 dataSet 名稱是否相同
if(dataSetRepName.equals(dataSetTagName)){
//System.out.println("sql++++++++++++++++++++++="+ dataSetTagBean.getQueryString());
//map.put(dataSetTagName, sql);
dataSetRepBean.setQueryString(dataSetTagBean.getQueryString());
dataSetRepBean.setParameterList(dataSetTagBean.getParameterList());
dataSetRepBean.setFieldList(dataSetTagBean.getFieldList());
dataSetRepBean.setDataSetCnName(dataSetTagBean.getDataSetCnName());
dataSetRepBean.setType(dataSetTagBean.getType());
}
}
}
}
}
}
}
}
}
}
}
}
}
//===============解析tag標籤結束====================
//dataSetRepList.add(dataSetRepBean);
}
}
}
}
}
}
}
//}
return dataGroupsMap;
}
4.靜態方法,xml只解析一次,下次同類型的就直接取
CreatPieForReport creatPieForReport;
private static Map<String,DataGroupBean> mapData = new HashMap<String,DataGroupBean>();
static{
mapData = parseTagInfo();
}
5.解析xml標籤(根據層級關係全部解析出來放入Map中)
/**
* 解析 標籤 XML文件
* @param xmlpath XML文件路徑
* @return
*/
public static Map<String,DataGroupBean> parseTagInfo() {
File f = new File(XmlPathDef.getTagPath()); //新建文件實例
//System.out.println(f);
File[] list = f.listFiles(); /* 此處獲取文件夾下的所有文件 */
Map<String,DataGroupBean> map = new HashMap();
SAXBuilder builder=new SAXBuilder(false);
for(int i=0;i<list.length;i++){
//System.out.println("path:-------------" + XmlPathDef.getTagPath() + list[i].getName());//打印全路徑
if(list[i].getName().substring(list[i].getName().length()-4, list[i].getName().length()).equals(".xml")){
String tagXmlPath = XmlPathDef.getTagPath() + list[i].getName();
try {
Document xml = builder.build(tagXmlPath);
Element root = xml.getRootElement();
DataGroupBean dataGroupBean = new DataGroupBean();
dataGroupBean.setDataGroupName(root.getAttributeValue(NAME));
List<Object> dataSetsOrTranstorList = root.getChildren(); //獲取所有的子節點
List<DataSetsBean> dataSetsList = new ArrayList<DataSetsBean>();
List<DataTranstorBean> dataTranstorList = new ArrayList<DataTranstorBean>();
if(dataSetsOrTranstorList != null && dataSetsOrTranstorList.size()>0){
for(Iterator<Object> itfs = dataSetsOrTranstorList.iterator(); itfs.hasNext();) {
Element dataSetssOrTranstorObj = (Element)itfs.next();
if(dataSetssOrTranstorObj.getAttributeValue(NAME).equals("dataSets")){
DataSetsBean dataSetsBean = getDataSetsBean(dataSetssOrTranstorObj);
if(dataSetsBean != null){
dataSetsList.add(dataSetsBean);
}
dataGroupBean.setDataSetsList(dataSetsList);
}else if(dataSetssOrTranstorObj.getAttributeValue(NAME).equals("dataTranstor")){//暫時未處理
DataTranstorBean dataTranstorBean = getDataTranstorBean(dataSetssOrTranstorObj);
if(dataTranstorBean != null){
dataTranstorList.add(dataTranstorBean);
}
dataGroupBean.setDataTranstorList(dataTranstorList);
}
}
}
map.put(root.getAttributeValue(NAME), dataGroupBean);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return map;
}
/**
* 獲取DataSetsBean對象列表
* @param dataSetsList
*/
public static DataSetsBean getDataSetsBean(Element dataSetsObj){
DataSetsBean dataSetsBean = null;
if(dataSetsObj != null){
dataSetsBean = new DataSetsBean();
String dataSetsName = dataSetsObj.getAttributeValue(NAME);
dataSetsBean.setDataSetsName(dataSetsName);
List<Object> dataSetList = dataSetsObj.getChildren(); //獲取 dataSet 所有的子節點
dataSetsBean.setDataSetList(getDataSetBean(dataSetList));
}
return dataSetsBean;
}
/**
* 獲取DataSetBean對象列表
* @param dataSetList
*/
public static List<DataSetBean> getDataSetBean(List<Object> dataSetList){
List<DataSetBean> list = new ArrayList<DataSetBean>();
DataSetBean dataSetBean = null;
if(dataSetList != null && dataSetList.size()>0){
for(Iterator<Object> iter = dataSetList.iterator(); iter.hasNext();) {
Element thirdObj = (Element)iter.next();
dataSetBean = new DataSetBean();
String dataSetName = thirdObj.getAttributeValue(NAME); //名稱
dataSetBean.setDataSetName(dataSetName);
String dataSetCnName = thirdObj.getAttributeValue(CNNAME); //中文名稱
dataSetBean.setDataSetCnName(dataSetCnName);
String dataSetType=thirdObj.getAttributeValue("type"); //類型
dataSetBean.setType(dataSetType);
String queryString =thirdObj.getChildTextTrim("queryString");
dataSetBean.setQueryString(queryString); //獲取查詢的SQL語句
List<Object> parameterList = thirdObj.getChildren("parameter");//獲取參數列表
dataSetBean.setParameterList(getParameterBean(parameterList));
List<Object> fieldList = thirdObj.getChildren("field");//獲取查詢字段列表
dataSetBean.setFieldList(getFieldBean(fieldList));
list.add(dataSetBean);
}
}
return list;
}
/**
* 獲取Filed對象列表
* @param fieldList
*/
public static List<FieldBean> getFieldBean(List<Object> fieldList){
List<FieldBean> list = new ArrayList<FieldBean>();
FieldBean fieldBean = null;
int i = 1;
if(fieldList != null && fieldList.size()>0){
for(Iterator<Object> iters = fieldList.iterator(); iters.hasNext();) {
Element fourthObj = (Element)iters.next();
fieldBean = new FieldBean();
String key = fourthObj.getAttributeValue("key");
fieldBean.setKey(key);
String fname = fourthObj.getAttributeValue(NAME);
fieldBean.setName(fname);
String column = fourthObj.getAttributeValue("column");
fieldBean.setColumn(column);
String ctype = fourthObj.getAttributeValue("ctype");
fieldBean.setCtype(ctype);
String url = fourthObj.getAttributeValue("url");
fieldBean.setUrl(url);
String sort = fourthObj.getAttributeValue("sort");
if(CommonUtils.isNotNull(sort)){
fieldBean.setSort(sort);
}else{
fieldBean.setSort(String.valueOf(i));
}
list.add(fieldBean);
i++;
}
}
return list;
}
/**
* 獲取 DataGroupsBean 對象列表
* @param dataGroupsList
*/
public List<DataGroupsBean> getReportDataGroupsBean(List<Object> dataGroupsList){
List<DataGroupsBean> list = new ArrayList<DataGroupsBean>();
DataGroupsBean dataGroupsBean = null;
if(dataGroupsList != null && dataGroupsList.size()>0){
for(Iterator<Object> itfs = dataGroupsList.iterator(); itfs.hasNext();) { //遍歷出所有的 dataGroups 列表
Element dataGroupsObj = (Element)itfs.next();
dataGroupsBean = new DataGroupsBean();
String dataGroupsName = dataGroupsObj.getAttributeValue(NAME);
dataGroupsBean.setDataGroupsName(dataGroupsName);
List<Object> dataGroupList = dataGroupsObj.getChildren(); //獲取 dataGroup 所有的子節點列表
dataGroupsBean.setDataGroupsList(getReportDataGroupBean(dataGroupList));
list.add(dataGroupsBean);
}
}
return list;
}
/**
* 獲取DataGroupBean對象列表
* @param dataGroupList
*/
public List<DataGroupBean> getReportDataGroupBean(List<Object> dataGroupList){
List<DataGroupBean> list = new ArrayList<DataGroupBean>();
DataGroupBean dataGroupBean = null;
if(dataGroupList != null && dataGroupList.size()>0){
for(Iterator<Object> iter = dataGroupList.iterator(); iter.hasNext();) {
Element dataGroupObj = (Element)iter.next();
dataGroupBean = new DataGroupBean();
String dataGroupName = dataGroupObj.getAttributeValue(NAME);
dataGroupBean.setDataGroupName(dataGroupName);
List<Object> dataSetsOrTranstorList = dataGroupObj.getChildren(); //獲取 dataSets 所有的子節點列表
List<DataSetsBean> dataSetsRepList = new ArrayList<DataSetsBean>();
List<DataTranstorBean> dataTranstorList = new ArrayList<DataTranstorBean>();
if(dataSetsOrTranstorList != null && dataSetsOrTranstorList.size()>0){
for(Iterator<Object> itfs = dataSetsOrTranstorList.iterator(); itfs.hasNext();) {
Element dataSetOrTranstorObj = (Element)itfs.next();
String dataSetsName = dataSetOrTranstorObj.getAttributeValue(NAME);
if(dataSetsName.equals("dataSets")){
DataSetsBean dataSetsBean = getReportDataSetsBean(dataSetOrTranstorObj);
if(dataSetsBean != null){
dataSetsRepList.add(dataSetsBean);
}
dataGroupBean.setDataSetsList(dataSetsRepList);
}else if(dataSetsName.equals("dataTranstor")){//暫時未處理
DataTranstorBean dataTranstorsBean = getReportDataTranstorBean(dataSetOrTranstorObj);
if(dataTranstorsBean != null){
dataTranstorList.add(dataTranstorsBean);
}
dataGroupBean.setDataTranstorList(dataTranstorList);
}
}
}
list.add(dataGroupBean);
}
}
return list;
}
/**
* 獲取DataSetsBean對象列表
* @param dataSetsList
*/
public DataSetsBean getReportDataSetsBean(Element dataSetsObj){
DataSetsBean dataSetsBean = null;
if(dataSetsObj != null){
dataSetsBean = new DataSetsBean();
String dataSetsName = dataSetsObj.getAttributeValue(NAME);
dataSetsBean.setDataSetsName(dataSetsName);
List<Object> dataSetList= dataSetsObj.getChildren(); //獲取 dataSet 所有的子節點
dataSetsBean.setDataSetList(getReportDataSetBean(dataSetList));
}
return dataSetsBean;
}
/**
* 獲取 getReportDataTranstorBean 對象列表
* @param dataSetsList
*/
public DataTranstorBean getReportDataTranstorBean(Element transtorsObj){
DataTranstorBean dataTranstorsBean = null;
if(transtorsObj != null){
dataTranstorsBean = new DataTranstorBean();
String dataTranstorName = transtorsObj.getAttributeValue(NAME);
dataTranstorsBean.setDataTranstorsName(dataTranstorName);
List<Object> dataSetList = transtorsObj.getChildren(); //獲取 dataTranstor 所有的子節點
dataTranstorsBean.setDataSetList(getReportDataSetBean(dataSetList));
}
return dataTranstorsBean;
}
/**
* 獲取ReportDataSetBean對象列表
* @param dataSetList
*/
public List<DataSetBean> getReportDataSetBean(List<Object> dataSetList){
List<DataSetBean> list = new ArrayList<DataSetBean>();
DataSetBean dataSetBean = null;
if(dataSetList != null && dataSetList.size()>0){
for(Iterator<Object> iter1 = dataSetList.iterator(); iter1.hasNext();) {
Element dataSetObj = (Element)iter1.next();
dataSetBean = new DataSetBean();
String dataSetName = dataSetObj.getAttributeValue(NAME);
String sort = dataSetObj.getAttributeValue("sort");
dataSetBean.setDataSetName(dataSetName);
dataSetBean.setSort(sort==null?"":sort);
list.add(dataSetBean);
}
}
return list;
}
/**
* 解析定義的報告 XML文件
* @param xmlpath XML文件路徑
* @return
*/
public Map<String,List<DataGroupsBean>> parseReportInfo(String peportXmlPath) {
Map<String,List<DataGroupsBean>> map = null;
SAXBuilder builder=new SAXBuilder(false);
Document xml;
try {
xml = builder.build(peportXmlPath);
Element root = xml.getRootElement();
List<Object> dataGroupsList = root.getChildren(); //獲取所有的子節點
List<DataGroupsBean> dataGroupsBean = getReportDataGroupsBean(dataGroupsList);
map = new HashMap<String,List<DataGroupsBean>>();
map.put(root.getAttributeValue(NAME), dataGroupsBean);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return map;
}
(未完待續)