【文件属性】:
文件名称:dom4j生成xml
文件大小:2.86MB
文件格式:RAR
更新时间:2016-05-25 17:20:19
dom4j xml 生成
该项目采用dom4j从数据库表中生成xml数据
项目文档、数据库建表语句均已放置在项目中。
关键代码如下:
public String getXml(Connection conn, int rm_id, String path) {
//声明xml字符串
String fileString = "";
//创建DAO对象
MachineroomDao machineroom_dao = new MachineroomDao();
Cab_equipmentDao cab_equipment_dao = new Cab_equipmentDao();
Equip_configDao equip_config_dao = new Equip_configDao();
EquipmentDao equipment_dao = new EquipmentDao();
//添加room,第一层
Machineroom machineroom_dto = machineroom_dao.findById(conn, rm_id);//设置房间号
//获取个属性的值.如果为null,将属性设为""
String getMr_id = new Integer(machineroom_dto.getMr_id()).toString();
String getMr_name = machineroom_dto.getMr_name();
if(getMr_id == null) getMr_id = "";
if(getMr_name == null) getMr_name = "";
Document document = DocumentHelper.createDocument();
Element rooms_racks = document.addElement("rooms-racks");
Element room = rooms_racks.addElement("room");
room.addAttribute("id", getMr_id);
room.addAttribute("name", getMr_name);
room.addAttribute("isSelected", "true");
//添加rack,第二层
List cab_equipment_list = cab_equipment_dao.findById(conn, path, machineroom_dto.getMr_id());
for (int i = 0; i < cab_equipment_list.size(); i++) {
Cab_equipment cab_equipment_dto = cab_equipment_list.get(i);
//获取个属性的值.如果为null,将属性设为""
String getE_id = cab_equipment_dto.getE_id();
String getEqucab_name = cab_equipment_dto.getEqucab_name();
String getX = cab_equipment_dto.getX() + "";
String getY = cab_equipment_dto.getY() + "";
String getZ = cab_equipment_dto.getZ() + "";
String getLongs = cab_equipment_dto.getLongs() + "";
String getWidth = cab_equipment_dto.getWidth() + "";
String getHighs = cab_equipment_dto.getHighs() + "";
String getRotate_angle = cab_equipment_dto.getRotate_angle();
if(getE_id == null) getE_id = "";
if(getEqucab_name == null) getEqucab_name = "";
if(getRotate_angle == null) getRotate_angle = "";
//将float后的".0"去掉
if(cab_equipment_dto.getX()%1 == 0) getX = (int)cab_equipment_dto.getX()+"";
if(cab_equipment_dto.getY()%1 == 0) getY = (int)cab_equipment_dto.getY()+"";
if(cab_equipment_dto.getZ()%1 == 0) getZ = (int)cab_equipment_dto.getZ()+"";
if(cab_equipment_dto.getHighs()%1 == 0) getHighs = (int)cab_equipment_dto.getHighs()+"";
Element rack = room.addElement("rack");
rack.addAttribute("id", getE_id);
rack.addAttribute("name", getEqucab_name);
rack.addAttribute("x", getX);
rack.addAttribute("y", getY);
rack.addAttribute("z", getZ);
rack.addAttribute("lengthX", getLongs);
rack.addAttribute("lengthY", getWidth);
rack.addAttribute("lengthZ", getHighs);
rack.addAttribute("rotation", getRotate_angle);
//添加device,第三层
int u = 0;//表示需要计算的u高,其xml的属性为uplace
int count = 0;//计数器,临时变量
int count2 = 0;
List equip_config_list = equip_config_dao.findByLocation(conn, cab_equipment_dto.getE_id());
for (int j = 0; j < equip_config_list.size(); j++) {
Equip_config equip_config_dto = equip_config_list.get(j);
Equipment equipment_dto = equipment_dao.findBySerial(conn, equip_config_dto.getSerial());
//获取个属性的值.如果为null,将属性设为""
String getSerial = equip_config_dto.getSerial();
String getEquipmentname = equip_config_dto.getEquipmentname();
String getEq_typecn = equipment_dto.getEq_typecn();
String getImagepath = equip_config_dto.getImagepath();
String getStorey = equip_config_dto.getStorey();
//String getU = equip_config_dto.getU() + "";
if(getSerial == null) getSerial = "";
if(getEquipmentname == null) getEquipmentname = "";
if(getEq_typecn == null) getEq_typecn = "";
if(getImagepath == null) getImagepath = "";
if(getStorey == null) getStorey = "";
int getU = equip_config_dto.getU();
//处理u高
if(getU != 0){
count++;
}
if(count2==0){
if(count == 1){
u = 2;
}
}else{
Equip_config equip_config_dto_temp = equip_config_list.get(count2 - 1);
Equipment equipment_dto_temp = equipment_dao.findBySerial(conn, equip_config_dto_temp.getSerial());
int getU_temp = equip_config_dto_temp.getU();
if(count == 1){
u = 2;
}else {
if(getU_temp == 0){
u = u + getU_temp/10 + 0;
} else {
if(getU_temp == 0){
u = u + getU_temp/10 +2;
}else {
u = u + getU_temp/10 + 1 + 2;
}
}
}
}
count2++;
String uplace = u + "";
String GetU = getU + "";
if(getU == 0) {
uplace = "0";
}//u高处理完毕
Element device = rack.addElement("device");
device.addAttribute("num", getSerial);
device.addAttribute("name", getEquipmentname);
device.addAttribute("type", getEq_typecn);
device.addAttribute("image", getImagepath);
//device.addAttribute("storey", getStorey);//设备所在的层数,该属性不在xml中展示
device.addAttribute("uplace", uplace);//计算得来的u高
device.addAttribute("uheight", GetU);//图片的高度
}
}
//设置xml输出格式
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
StringWriter out = new StringWriter();
XMLWriter xmlWriter = new XMLWriter(out, format);
try {
xmlWriter.write(document);
fileString = out.toString();
xmlWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return fileString;
}
【文件预览】:
XML项目
----database_xml.sql(1.81MB)
----XML项目文档.doc(156KB)
----room.xml(86KB)
----xml()
--------.settings()
--------src()
--------.project(1KB)
--------WebRoot()
--------.mymetadata(282B)
--------.classpath(809B)
--------.myeclipse()