急。。。求教,j2ee里面的读数据库操作,得到的list,如何生成xml文件?

hellcomer 2011-06-16 09:10:42
如题,我现在从数据库中读出的是一个list对象,如何让其形成一个xml文件呢? 或者说,我用dom4j来解析,但是dom4j的解析读取文件均是从
File inputXml = new File(fileName);
SAXReader saxReader = new SAXReader();
里读取的,如何写,可以让其直接从list里读取呢?
谢谢大家了。。
...全文
235 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
UPC_思念 2011-06-16
  • 打赏
  • 举报
回复
我写的那个就是从List读取数据然后生成xml格式的字符串,如果还需要将这个字符串写入一个.xml文件中,直接用输出流就可以实现
xuxianyue 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hellcomer 的回复:]
3楼说的没错。。还是不知道该怎么写, 我是从list中读取数据然后写入xml文件中,这个不是手动加的6楼的方法只能添加以小部分数据。。
[/Quote]
你从数据库应该得到一个Clob,BloB数据对象,
比如说Clob对象,可以从该对象中获得流
InputStream in =Clob.getAsciiStream()
ObjectInputStream object=new ObjectInputStream(in);
List list=(List)object.readObject();
然后按照六楼这样的方式
Document d = DocumentHelper.createDocument();
//创建根节点
Element listE= d.addElement("list");
for (String e: list) {
Element element = books.addElement("e");
bookElement.addElement("name").addText(e) }
d.setXMLEncoding("utf-8");
d.asXML();
}
将list对象的每个元素添加到XML中。
不知道这样行不行?
这里有疑问竟然读到数据为什么不直接用呢?
小绵羊 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zxingchao2009 的回复:]

引用 10 楼 hellcomer 的回复:
3楼说的没错。。还是不知道该怎么写, 我是从list中读取数据然后写入xml文件中,这个不是手动加的6楼的方法只能添加以小部分数据。。


我写得只能添加小部分数据?求解释
[/Quote]
小老鼠跟这种人没啥好说的罗
UPC_思念 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hellcomer 的回复:]
3楼说的没错。。还是不知道该怎么写, 我是从list中读取数据然后写入xml文件中,这个不是手动加的6楼的方法只能添加以小部分数据。。
[/Quote]

我写得只能添加小部分数据?求解释
小绵羊 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hellcomer 的回复:]

3楼说的没错。。还是不知道该怎么写, 我是从list中读取数据然后写入xml文件中,这个不是手动加的6楼的方法只能添加以小部分数据。。
[/Quote]

晕6楼的数据是手动添加进去的,你的是查数据库查的有区别吗????????????????????

3楼说的根本就不可能,序列化跟xml有什么关系?????????

可怜楼主放着正确答案不用!!!!!!!!!!!!!!
hellcomer 2011-06-16
  • 打赏
  • 举报
回复
3楼说的没错。。还是不知道该怎么写, 我是从list中读取数据然后写入xml文件中,这个不是手动加的6楼的方法只能添加以小部分数据。。
xflr123 2011-06-16
  • 打赏
  • 举报
回复
学习啦 嘿嘿
小绵羊 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zxingchao2009 的回复:]

这个简单,可以使用dom4j来生成xml格式的字符串
Java code

public class Book {
private String name;
private String author;

public Book(String name, String author) {
this.name = name;
this.a……
[/Quote]
顶小老鼠一个,楼主别偷懒哇
UPC_思念 2011-06-16
  • 打赏
  • 举报
回复
结果:
生成的xml文件是:
<?xml version="1.0" encoding="utf-8"?>
<books><book><name>三国演义</name><author>罗贯中</author></book><book><name>水浒传</name><author>施耐庵</author></book><book><name>西游记</name><author>吴承恩</author></book><book><name>曹雪芹</name><author>高鄂</author></book></books>
UPC_思念 2011-06-16
  • 打赏
  • 举报
回复
这个简单,可以使用dom4j来生成xml格式的字符串

public class Book {
private String name;
private String author;

public Book(String name, String author) {
this.name = name;
this.author = author;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAuthor() {
return author;
}

public void setAuthor(String author) {
this.author = author;
}

}


import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

public class CreateXmlByList {
public static void main(String[] args) {
List<Book> bookList = new ArrayList<Book>();
bookList.add(new Book("三国演义", "罗贯中"));
bookList.add(new Book("水浒传", "施耐庵"));
bookList.add(new Book("西游记", "吴承恩"));
bookList.add(new Book("曹雪芹", "高鄂"));
Document d = DocumentHelper.createDocument();
//创建根节点
Element books = d.addElement("books");
for (Book book : bookList) {
Element bookElement = books.addElement("book");
bookElement.addElement("name").addText(book.getName());
bookElement.addElement("author").addText(book.getAuthor());
}
d.setXMLEncoding("utf-8");
System.out.println("生成的xml文件是:");
System.out.print(d.asXML());
}
}

小绵羊 2011-06-16
  • 打赏
  • 举报
回复
xstream好像可以
小绵羊 2011-06-16
  • 打赏
  • 举报
回复
序列化也没法读的。。。

你得自己手工循环添加,别偷懒。。。
xuxianyue 2011-06-16
  • 打赏
  • 举报
回复
应该是反序列化出list对象
然后从list对象中去元素。
通过对象流java.io.ObjectInputStream
自己网上查资料
hellcomer 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuxianyue 的回复:]

SAXReader saxReader = new SAXReader();
只读取xml文件,
你从数据库中读出的是一个list对象,
应该是一个二进制流对象,
应该先序列化。
取出一个一个元素
<?xml version="1.0" encoding="UTF-8"?>
<list>
<e>元素1</e>
<e>元素2</e>
</list>
不知道是否是这样?
[/Quote]
如何进行序列化取出元素呢? 还望详细告知。
xuxianyue 2011-06-16
  • 打赏
  • 举报
回复
SAXReader saxReader = new SAXReader();
只读取xml文件,
你从数据库中读出的是一个list对象,
应该是一个二进制流对象,
应该先序列化。
取出一个一个元素
<?xml version="1.0" encoding="UTF-8"?>
<list>
<e>元素1</e>
<e>元素2</e>
</list>
不知道是否是这样?
xuxianyue 2011-06-16
  • 打赏
  • 举报
回复
哥们,是你挑起争论的。
小绵羊 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 fang7665955 的回复:]

引用 21 楼 x19881216 的回复:
引用 20 楼 hellcomer 的回复:

引用 19 楼 x19881216 的回复:

引用 18 楼 x19881216 的回复:

引用 17 楼 hellcomer 的回复:
我这种人怎么了?我会不关你屁事,没求着你说,在论坛里发问题还要看人脸色?你爱说不说 不说就滚远点,在这里jjyy的

sb楼主,鉴定完毕

……
[/Quote]
看清楚再说话
hellcomer 2011-06-16
  • 打赏
  • 举报
回复
谢谢大家了。。
fang7665955 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 x19881216 的回复:]
引用 20 楼 hellcomer 的回复:

引用 19 楼 x19881216 的回复:

引用 18 楼 x19881216 的回复:

引用 17 楼 hellcomer 的回复:
我这种人怎么了?我会不关你屁事,没求着你说,在论坛里发问题还要看人脸色?你爱说不说 不说就滚远点,在这里jjyy的

sb楼主,鉴定完毕

你不SB,就你NB 行了吧。 离我远点。
你就……
[/Quote]
人家是个新手 没理解使用原理而已
你来装什么B,你很NB?
xuxianyue 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hellcomer 的回复:]
引用 16 楼 hellcomer 的回复:

引用 15 楼 zxingchao2009 的回复:

我写的那个就是从List读取数据然后生成xml格式的字符串,如果还需要将这个字符串写入一个.xml文件中,直接用输出流就可以实现

我就是不太懂得怎么从数据库中读出来写进去所以才提问的 。。 谢谢。

我这种人怎么了?我会不关你屁事,没求着你说,在论坛里发问题还要看人脸色?你爱说……
[/Quote]
楼主淡定!
加载更多回复(10)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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