java 怎么将数据动态的写入xml

Jolence1210 2011-01-06 03:16:37
从数据库中取出的数据放在list中 然后要将其写到xml中。最好能给一个通用的类
...全文
600 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuke6677 2013-02-01
  • 打赏
  • 举报
回复
能否说一下思路,借鉴一下
xuke6677 2013-02-01
  • 打赏
  • 举报
回复
现在可以了吗?
龙四 2011-01-08
  • 打赏
  • 举报
回复
直接用JAXB,能讲javabean直接转换成xml,还可以将特定格式的xml转换回javabean
Jolence1210 2011-01-07
  • 打赏
  • 举报
回复
分数我看着给
Jolence1210 2011-01-07
  • 打赏
  • 举报
回复
虽然没有帮到忙,但还是谢谢大家了
magong 2011-01-06
  • 打赏
  • 举报
回复
如果是不求Schema,只要保存为XML即可,
那不用写了,JDK中有,这样做:

XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream( ( (
OutputStream) (new FileOutputStream(filename)))));
encoder.writeObject(list);
encoder.close();
Jolence1210 2011-01-06
  • 打赏
  • 举报
回复
我现在的方法是这样的 不过每次都要修改节点 麻烦 所以我的意思是不论什么样的对象都可以写入 就是一个通用的类

public class BuildXML {
public void buildXml(List list,String filename) throws IOException{
try {
Document doc=DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
Element users=doc.createElement("Users");
doc.appendChild(users);
Iterator it=list.iterator();
while(it.hasNext()){
User user=(User)it.next();
Node u=users.appendChild(doc.createElement("User"));
Node id=u.appendChild(doc.createElement("id"));
Node username=u.appendChild(doc.createElement("username"));
Node password=u.appendChild(doc.createElement("password"));
Node sex=u.appendChild(doc.createElement("sex"));
Node age=u.appendChild(doc.createElement("age"));

id.setTextContent(Integer.toString(user.getId()));
username.setTextContent(user.getUsername());
password.setTextContent(user.getPassword());
sex.setTextContent(user.getSex());
age.setTextContent(Integer.toString(user.getAge()));
}

TransformerFactory transFactory=TransformerFactory.newInstance();
Transformer transformer = null;
try {
transformer = transFactory.newTransformer();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DOMSource domSource=new DOMSource(doc);
File file=new File(filename);
FileOutputStream out=new FileOutputStream(file);
StreamResult xmlResult=new StreamResult(out);
transformer.transform(domSource, xmlResult);

} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Inhibitory 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jolence1210 的回复:]

2楼的能给一种详细的方法吗 谢谢了
[/Quote]
里面那么多详细的例子,自己看一下就好了,而且也不知道你的List保存为XML的格式是什么样子的。
如果没有格式要求,那可以使用XStream来处理,记得json-lib也可以保存为xml的
网上的例子很多.
Jolence1210 2011-01-06
  • 打赏
  • 举报
回复
2楼的能给一种详细的方法吗 谢谢了
Inhibitory 2011-01-06
  • 打赏
  • 举报
回复
magong 2011-01-06
  • 打赏
  • 举报
回复
这个要顾及到XML文件的DTD或Schema的。
很多方法都能做。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧