在CIS项目中,需要生成特殊格式的xml, 涉及到一点小的算法
<?xml version="1.0" encoding="UTF-8" ?>
<attributeValueMapping>
<enumMapping name="adminstates_enum">
<enumeration key="0" value="Managed" />
<enumeration key="1" value="Unmanaged" />
<enumeration key="2" value="Unknown" />
<enumeration key="3" value="Testing" />
<enumeration key="4" value="Restricted" />
<enumeration key="5" value="Disabled" />
</enumMapping>
</attributeValueMapping>
public Map<String, List<String>> doParseForEnum2() {
init(FILE_NAME_SPECIFICATION,SHEET_SPECIFICATION);
int attributeColumn = 0;
int keyColumn = 1;
int valueColumn = 2;
int typeColumn = 3;
Map<String,List<String>> map = new HashMap<String,List<String>>();
for(int i = 3; i< SPECIFICATION_LENGTH ; i++){
String attribute = getValue(i, attributeColumn);
String key = getValue(i, keyColumn);
String value = getValue(i, valueColumn);
String type = getValue(i, typeColumn);
if("ENUM".equals(type)){
if(map.containsKey(attribute)){
map.get(attribute).add(key+","+value);
}else{
List<String> list = new ArrayList<String>();
list.add(key+","+value);
map.put(attribute,list);
}
}
}
free();
return map;
}
读EXCEL文件, 将数据以Map<String,List<String>>的格式输出到XML。
关键点是
if(map.containsKey(attribute)){
map.get(attribute).add(key+","+value);
}else{
List<String> list = new ArrayList<String>();
list.add(key+","+value);
map.put(attribute,list);
}