使用java实现查询数据库生成xml文件时出错
控制台能按序输出我查询的内容,整个程序也不报错。可Demo.xml文件就是为空。。郁闷中,求指点。。我把生成代码写到了我的xmlDao类的构造方法:下面是全部代码
public XmlDao() {
try {
File f = new File("F:\\Demo.xml");//Demo.xml 是你要写的目标文件
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc=db.newDocument();
Element root=doc.createElement("items");
UserDAO dao=new UserDAO();
List<dept> list1=new ArrayList<dept>();
List<User> list2=new ArrayList<User>();
list1=dao.selectDept();
Element dept=null;
for(dept temp1:list1){
String pname=temp1.getName();
String pid=temp1.getDeptid();
System.out.println("24个处室名称111"+temp1.getName());
dept=doc.createElement("dept");
dept.appendChild(doc.createTextNode(pname));
list2= dao.selectUser(pid);
Element emp=null;
for(User temp2:list2){
String uname=temp2.getName();
emp=doc.createElement("emp");
emp.appendChild(doc.createTextNode(uname));
System.out.println("各处事人员:"+uname);
}
dept.appendChild(emp);
}
root.appendChild(dept);
FileOutputStream os = new FileOutputStream(f);
( (XmlDocument) doc).write(os);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
//调用构造方法
public static void main(String[] args) {
XmlDao demo = new XmlDao();
}
------解决方案--------------------
你的代码不就是用的java自带的dom吗?你的DocumentBuilderFactory不是javax.xml.parsers.DocumentBuilderFactory吗,你上面的写法跟java自带的dom是一样的。除非你不是用java自带的,如果是的话就要用我说的Transformer
------解决方案--------------------
直接用jaxb把java对象转成xml好了,一点一点拼要累死还容易出错
你说的是ajax吗?我现在是个老项目的维护,相对来说用java解析xml并前台绑定输出更容易跟他之前代码风格一致
google一下jaxb。。。属于java api