永发信息网

关于JAVA从xml文件中读取数据的问题

答案:2  悬赏:40  手机版
解决时间 2021-02-03 16:31
  • 提问者网友:溺爱和你
  • 2021-02-03 08:35
关于JAVA从xml文件中读取数据的问题
最佳答案
  • 五星知识达人网友:你哪知我潦倒为你
  • 2021-02-03 09:11
1.xml文件的位置不是重点,就一个路径的事,只要路径取正确能读到文件就可以
2.你要会dom4j ,用这个jar提供的方法去操作xml
其他的就没有什么问题了追问就是在外部创建一个xml文件,然后利用dom4j来解析xml文件就可以了是吗?追答对
xml文件的位置在那里其实都是可以的,因为我们可以通过相对路径 或者绝对路径来定位它的位置,那么我们的io流就可以读取到了追问嗯,谢谢,了解了。那个,不好意思,以后有问题可以问你吗?我在百度关注你可以吗?追答可以啊,我有空会逛百度知道和贴吧的
全部回答
  • 1楼网友:玩世
  • 2021-02-03 10:07
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;



public class XmlUtil {


@SuppressWarnings("unchecked")
public static List readBaseNodes(String path) {
List list = new ArrayList();
SAXReader reader = new SAXReader();
Document doc = null;
String leaf = "";
try {
// 读取文件
File in = new File(path);
doc = reader.read(in);
Element root = doc.getRootElement();
List eles = root.elements("nodes");
List 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 readCalenderNodes(String path) {
List list = new ArrayList();
SAXReader reader = new SAXReader();
Document doc = null;
String leaf = "";
try {
// 读取文件
File in = new File(path);
doc = reader.read(in);
Element root = doc.getRootElement();
List eles = root.elements("nodes");
List 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("");
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> readMapTest() {
List> list = new ArrayList>();
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 eles = root.elements("nodes");
List cols = null;
for (Element ele : eles) {
cols = ele.elements();
for (Element element : cols) {
Map map = new HashMap();
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 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);

}

}追问也谢谢你了,不过我有点菜,看不太懂OTZ
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯