package com.atom.util;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import com.atom.basic.columntree.ColumnTree;
import com.atom.biz.base.calendar.bean.CalenderNode;
import com.atom.biz.base.setup.BaseSetupNode;
/**
* <p>
* 操作xml文件类
* </p>
* xml 文件格式为
*
* <tables><table><col name="" value="" /><col name="" value="" /></table><table></table></tables>
*
* @author KHT * @version $Id: XmlUtil.java,v 0.1 2009-2-22 下午10:49:02 */
public class XmlUtil {
/**
* <p>
* 读取数据的xml文件
* </p>
*
* @author Jack Zhou
* @version $Id: XmlUtil.java, */
@SuppressWarnings("unchecked")
public static List<BaseSetupNode> readBaseNodes(String path) {
List<BaseSetupNode> list = new ArrayList<BaseSetupNode>();
SAXReader reader = new SAXReader();
Document doc = null;
String leaf = "";
try {
// 读取文件
File in = new File(path);
doc = reader.read(in);
Element root = doc.getRootElement();
List<Element> eles = root.elements("nodes");
List<Element> cols = null;
for (Element ele : eles) {
cols = ele.elements();
for (Element element : cols) {
BaseSetupNode node = new BaseSetupNode();
node.setFz(element.attributeValue("fz"));
node.setMc(element.attributeValue("mc"));
node.setSm(element.attributeValue("sm"));
leaf = element.attributeValue("leaf");
node.setUiProvider("col");
node.setId(element.attributeValue("id"));
node.setParentId(element.attributeValue("parantid"));
node.setHref(element.attributeValue("href"));
if ("".equals(leaf) || "0".equals(leaf)) {
node.setLeaf(false);
node.setIconCls("task");
} else {
node.setLeaf(true);
node.setIconCls("task-folder");
}
list.add(node);
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return list;
}
public static List<CalenderNode> readCalenderNodes(String path) {
List<CalenderNode> list = new ArrayList<CalenderNode>();
SAXReader reader = new SAXReader();
Document doc = null;
String leaf = "";
try {
// 读取文件
File in = new File(path);
doc = reader.read(in);
Element root = doc.getRootElement();
List<Element> eles = root.elements("nodes");
List<Element> cols = null;
String isv = "";
for (Element ele : eles) {
cols = ele.elements();
for (Element element : cols) {
CalenderNode node = new CalenderNode();
node.setDateType(element.attributeValue("dateType"));
node.setDateName(element.attributeValue("dateName"));
node.setDate(element.attributeValue("date"));
node.setMemo(element.attributeValue("memo"));
isv = element.attributeValue("visible");
if (!StringUtil.isEmpty(isv))
node
.setVisible("<img src='/public/images/Checkmark4.gif' />");
else
node.setVisible("-");
leaf = element.attributeValue("leaf");
node.setUiProvider("col");
node.setId(element.attributeValue("id"));
node.setParentId(element.attributeValue("parantid"));
node.setHref(element.attributeValue("href"));
if ("".equals(leaf) || "0".equals(leaf)) {
node.setLeaf(false);
node.setIconCls("task");
} else {
node.setLeaf(true);
node.setIconCls("task-folder");
}
list.add(node);
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return list;
}
@SuppressWarnings("unchecked")
public List<Map<String, String>> readMapTest() {
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
String path = this.getClass().getResource("/").getPath()
+ "/xml/test.xml";
SAXReader reader = new SAXReader();
Document doc = null;
try {
// 读取文件
File in = new File(path);
doc = reader.read(in);
Element root = doc.getRootElement();
List<Element> eles = root.elements("nodes");
List<Element> cols = null;
for (Element ele : eles) {
cols = ele.elements();
for (Element element : cols) {
Map<String, String> map = new HashMap<String, String>();
map.put("childrows", element.attributeValue("childrows"));
map.put("hc0", element.attributeValue("hc0"));
map.put("hc1", element.attributeValue("hc1"));
map.put("hc2", element.attributeValue("hc2"));
map.put("hc3", element.attributeValue("hc3"));
map.put("hasnote", element.attributeValue("hasnote"));
map.put("urid", element.attributeValue("urid"));
map.put("entityid", element.attributeValue("entityid"));
map.put("bankid", element.attributeValue("bankid"));
list.add(map);
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return list;
}
public static void main(String[] args) {
XmlUtil xml = new XmlUtil();
String path = xml.getClass().getResource("/").getPath();
List<BaseSetupNode> nodes = XmlUtil.readBaseNodes(path
+ "/xml/base.xml");
ColumnTree t = new ColumnTree();
System.out.println(t.getJsonString(nodes));
// System.out.println(nodes.size());
// System.out.println(path);
}
}