本文介绍使用dom4j解析两种不同形式的xml文件信息
方式一:
xml例子
<?xml version="1.0" encoding="UTF-8"?>
<table>
<tableName table="xxx">
<bt>bt</bt>
<zj>id</zj>
<pxzd>lbsj</pxzd>
<zw>zw</zw>
<fjtable>xxx</fjtable>
<fjgl>kpsjid</fjgl>
<fjlj>cclj</fjlj>
<fjm>wjm</fjm>
</tableName>
</table>
java 代码
public static Map<String,TableXmlVo> getPlModelList(String xml) throws FileNotFoundException, DocumentException{
SAXReader reader = new SAXReader();
FileInputStream fis = null;
Document doc = null;
Map<String,TableXmlVo> tableMap= new HashMap<>();
List<TableXmlVo> list = new ArrayList<TableXmlVo>();
fis = new FileInputStream(new File(xml)) ;
doc = reader.read(fis);
Element rootElt = doc.getRootElement(); //获取根节点
System.out.println("根节点:"+rootElt.getName());
Iterator<Element> it = rootElt.elementIterator("tableName"); //获取根节点下的所有PL
Integer x=0;
while(it.hasNext()){
x++;
try {
Element elementPl = (Element)it.next();
String returnCode = elementPl.attributeValue("table");
TableXmlVo baseBean = (TableXmlVo)XmlUtils.fromXmlToBean(elementPl, TableXmlVo.class);
baseBean.setXsItems(xsItems);
//list.add(baseBean);
tableMap.put(returnCode, baseBean);
} catch (Exception e) {
e.getStackTrace();
}
}
if(fis!=null){
try {
fis.close();
} catch (Exception e2) {
}
}
return tableMap;
}
>方式二
xml例子
<?xml version="1.0" encoding="UTF-8"?>
<table>
<tableName table="xxx">
<ys xsmc="密xx" zd="mmdj"></ys>
<ys xsmc="xxx" zd="lycc"></ys>
<ys xsmc="xx" zd="cjr"></ys>
<ys xsmc="修改人" zd="xgr"></ys>
<ys xsmc="xxx" zd="lydw"></ys>
</tableName>
</table>
java 代码
public static Map<String,TableXmlVo> getPlModelList(String xml) throws FileNotFoundException, DocumentException{
SAXReader reader = new SAXReader();
FileInputStream fis = null;
Document doc = null;
List<Map<String,Object>> list = new ArrayList<>();
fis = new FileInputStream(new File(xml)) ;
doc = reader.read(fis);
Element rootElt = doc.getRootElement(); //获取根节点
System.out.println("根节点:"+rootElt.getName());
List<Element> ysItems = rootElt.elements("ys");
for (Element tmp : ysItems) {
Map<String,Object> map = new HashMap<>();
String xsmc=tmp.attribute("xsmc").getValue();
String path=tmp.attributeValue("zd");
map.put("xsmc", xsmc);
map.put("zd", path);
list.add(map);
}
if(fis!=null){
try {
fis.close();
} catch (Exception e2) {
}
}
return list;
}