BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #22187同步于 2012/4/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

【求教】如何将一个java对象转换成的xml文件存储在字符串中

laughing
2012/4/20镜像同步6 回复
我用jaxb将一个java对象转为xml文件(代码如下),如何能够将这个对象生成的xml直接存储在一个string类型的变量中呢,不经过本地存储。 JAXBContext context = JAXBContext.newInstance(Alert.class); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING,"utf-8");//编码格式 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);//是否格式化生成的xml串 marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);//是否省略xml头信息 marshaller.marshal(alert, new File("E:\\out.xml")); 真诚求教呀。 另外请教的是:web service服务可以直接返回一个xml文档吗?怎么返回呢?客户端要如何解析呢?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
lastword机器人#1 · 2012/4/20
xml实质上就是文本,只不过是带结构的格式化的文本,不论是存储还是传输,写成xml格式后按普通文本处理就是了。。 至于生成和解析的方法有很多,网上随便搜一大堆,挑个合适的就行 【 在 laughing (哈哈) 的大作中提到: 】 : 我用jaxb将一个java对象转为xml文件(代码如下),如何能够将这个对象生成的xml直接存储在一个string类型的变量中呢,不经过本地存储。 : JAXBContext context = JAXBContext.newInstance(Alert.class); : Marshaller marshaller = context.createMarshaller(); : ...................
laughing机器人#2 · 2012/4/20
哦,我目前的处理方法就是从文件中再读出来,就这样: FileInputStream inputstream = new FileInputStream("E:\\out.xml"); StringBuffer buffer = new StringBuffer(); String line; // 用来保存每行读取的内容 BufferedReader bufferreader = new BufferedReader(new InputStreamReader(new FileInputStream("E:\\out.xml"))); line = bufferreader.readLine(); // 读取第一行 while (line != null) { // 如果 line 为空说明读完了 buffer.append(line); // 将读到的内容添加到 buffer 中 buffer.append("\n"); // 添加换行符 line = bufferreader.readLine(); // 读取下一行 } // 将读到 buffer 中的内容写出来 inputstream.close(); String filetext = buffer.toString(); System.out.println(filetext); 在本地打印没有问题,但是给他封装成webservice之后客户端调用得到的字符串,打出来就是乱码了,很苦恼 【 在 lastword 的大作中提到: 】 : xml实质上就是文本,只不过是带结构的格式化的文本,不论是存储还是传输,写成xml格式后按普通文本处理就是了。。 : 至于生成和解析的方法有很多,网上随便搜一大堆,挑个合适的就行
aiquestion机器人#3 · 2012/4/20
marshaller.marshal(alert, new File("E:\\out.xml")); 这个方法,有个是marshal(alert,Writer writer)格式的,后面用StringWriter,然后stringWriter.toString就行了,得到的就是String的xml字符串
laughing机器人#4 · 2012/4/22
是吗,我试试哈,膜拜大牛哈 【 在 aiquestion 的大作中提到: 】 : marshaller.marshal(alert, new File("E:\\out.xml")); 这个方法,有个是marshal(alert,Writer writer)格式的,后面用StringWriter,然后stringWriter.toString就行了,得到的就是String的xml字符串
laughing机器人#5 · 2012/4/22
问题解决啦,谢谢谢谢 【 在 aiquestion 的大作中提到: 】 : marshaller.marshal(alert, new File("E:\\out.xml")); 这个方法,有个是marshal(alert,Writer writer)格式的,后面用StringWriter,然后stringWriter.toString就行了,得到的就是String的xml字符串
aiquestion机器人#6 · 2012/4/22
唔。。菜鸟羞涩路过。。刚好用过而已。 【 在 laughing 的大作中提到: 】 : 是吗,我试试哈,膜拜大牛哈