ITPUB??ì3
ITPUB论坛 » Java入门与认证版 » 有关JAVA生成XML并通过流传输问题的困惑


标题: [原创] 有关JAVA生成XML并通过流传输问题的困惑
离线 IceWee
Junior SE


来自 North East
精华贴数 0
个人空间 0
技术积分 121 (14143)
社区积分 1 (44817)
注册日期 2008-1-18
论坛徽章:0
      
      

发表于 2008-6-26 08:45 
有关JAVA生成XML并通过流传输问题的困惑

昨天晚上朋友向我咨询了该题目,由于我也是个新人,并无实际经验,也不知道无法解决,所以来论坛求助有经验的前辈们指点迷津!万分感谢!

客户要求:
用JAVA语言将一个对象封装成XML文档的格式,也就是写入文件中打开一看是XML文档的格式,但这并没结束,还要求把这个XML文档转换成String字符串,因为要用到流传输到另一方接受,再将此字符串转换回XML对象,再转换成JAVA对象。

问题:
1.用哪个API将JAVA对象生成XML对象?
2.如何将内存中的这个XML对象再转成String字符串?(或省略这个步骤,进入3)
3.用什么方法来获取内存中的这个XML对象或2中的String字符串并以流的方式传送出去!也就是通过IO里的哪个流能获取内存中的数据?以前学流的时候都是从控制台输入,或者从文件中获取,这次是从内存中获取,是在不知道怎么写!

至于另一端就不成问题了,纯粹是个逆向过程,获取流转成XML再封装成对象。

在这里请求有过经验或有想法的朋友帮忙!感谢各位了先!


只看该作者    顶部
离线 justforregister
SAP


精华贴数 1
个人空间 10
技术积分 38458 (19)
社区积分 9928 (153)
注册日期 2005-6-10
论坛徽章:244
现任管理团队成员ITPUB元老奥运纪念徽章NBA2008季后赛纪念徽章欧洲冠军杯纪念徽章NBA常规赛纪念章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:摔跤

发表于 2008-6-26 11:50 
要学会用google


__________________
Go to Hell
大家一起BS以下菠菜作弊者

| EPS2008          |        35201 | 2008-08-17 22:18:17     |
| missingsky       |        22300 | 2008-08-17 22:19:17     |
| wws8875          |        10000 | 2008-08-17 22:25:54     |
| renxiang         |        23332 | 2008-08-17 22:28:15     |
只看该作者    顶部
离线 justforregister
SAP


精华贴数 1
个人空间 10
技术积分 38458 (19)
社区积分 9928 (153)
注册日期 2005-6-10
论坛徽章:244
现任管理团队成员ITPUB元老奥运纪念徽章NBA2008季后赛纪念徽章欧洲冠军杯纪念徽章NBA常规赛纪念章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:摔跤

发表于 2008-6-26 11:51 

__________________
Go to Hell
大家一起BS以下菠菜作弊者

| EPS2008          |        35201 | 2008-08-17 22:18:17     |
| missingsky       |        22300 | 2008-08-17 22:19:17     |
| wws8875          |        10000 | 2008-08-17 22:25:54     |
| renxiang         |        23332 | 2008-08-17 22:28:15     |
只看该作者    顶部
离线 justforregister
SAP


精华贴数 1
个人空间 10
技术积分 38458 (19)
社区积分 9928 (153)
注册日期 2005-6-10
论坛徽章:244
现任管理团队成员ITPUB元老奥运纪念徽章NBA2008季后赛纪念徽章欧洲冠军杯纪念徽章NBA常规赛纪念章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:摔跤

发表于 2008-6-26 11:51 
上面只是其中一个, 有很多开源组件可以做到


__________________
Go to Hell
大家一起BS以下菠菜作弊者

| EPS2008          |        35201 | 2008-08-17 22:18:17     |
| missingsky       |        22300 | 2008-08-17 22:19:17     |
| wws8875          |        10000 | 2008-08-17 22:25:54     |
| renxiang         |        23332 | 2008-08-17 22:28:15     |
只看该作者    顶部
离线 IceWee
Junior SE


来自 North East
精华贴数 0
个人空间 0
技术积分 121 (14143)
社区积分 1 (44817)
注册日期 2008-1-18
论坛徽章:0
      
      

发表于 2008-6-26 14:05 
感谢! 问题已经解决!

package com.xjgc.java;

import java.io.ByteArrayOutputStream;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;


public class MyXmlTest {

        public static void main(String[] args) {
                MyXmlTest test=new MyXmlTest();
                System.out.println(test.createStringFromXmlDoc());

        }
       
       
        public String createStringFromXmlDoc(){
                Element root = new Element("MessageQueueCommand");
                Document doc = new Document(root);
                Element injectionReq = new Element("InjectionRequestCommand");

        injectionReq.addContent(new Element("MessageId").setText("messageID-1"));
        injectionReq.addContent(new Element("Msisdn").setText("1310000111"));
        injectionReq.addContent(new Element("SourceTransactionId").setText("messageID-1"));
        injectionReq.addContent(new Element("TelcoId").setText("1"));
        injectionReq.addContent(new Element("TransmitterName").setText("TransmitterName-1"));
        injectionReq.addContent(new Element("Amount").setText("100"));
        
        root.addContent(injectionReq);
               
        ByteArrayOutputStream  byteRep  =  new  ByteArrayOutputStream();  
        XMLOutputter  docWriter  =  new  XMLOutputter("   ",  true,  "GBK");  
//        XMLOutputter  docWriter2=new XMLOutputter();
        try  {  
            docWriter.output(doc,  byteRep);  
        }  
        catch  (Exception  e)  {  
            e.printStackTrace();  
        }                
        String strFromXml=byteRep.toString();        
        return strFromXml;
        }

}












输出:
<?xml version="1.0" encoding="GBK"?>
<MessageQueueCommand>
   <InjectionRequestCommand>
      <MessageId>messageID-1</MessageId>
      <Msisdn>1310000111</Msisdn>
      <SourceTransactionId>messageID-1</SourceTransactionId>
      <TelcoId>1</TelcoId>
      <TransmitterName>TransmitterName-1</TransmitterName>
      <Amount>100</Amount>
   </InjectionRequestCommand>
</MessageQueueCommand>


只看该作者    顶部
离线 justforregister
SAP


精华贴数 1
个人空间 10
技术积分 38458 (19)
社区积分 9928 (153)
注册日期 2005-6-10
论坛徽章:244
现任管理团队成员ITPUB元老奥运纪念徽章NBA2008季后赛纪念徽章欧洲冠军杯纪念徽章NBA常规赛纪念章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章2008北京奥运纪念徽章:排球2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:摔跤

发表于 2008-6-26 15:42 
晕, 您这是object 到xml吗?


__________________
Go to Hell
大家一起BS以下菠菜作弊者

| EPS2008          |        35201 | 2008-08-17 22:18:17     |
| missingsky       |        22300 | 2008-08-17 22:19:17     |
| wws8875          |        10000 | 2008-08-17 22:25:54     |
| renxiang         |        23332 | 2008-08-17 22:28:15     |
只看该作者    顶部
离线 bhan2008
水龙吟



来自 广东 深圳
精华贴数 0
个人空间 0
技术积分 198 (9420)
社区积分 2 (27632)
注册日期 2005-10-14
论坛徽章:4
生肖徽章2007版:鼠生肖徽章2007版:虎生肖徽章2007版:兔开发板块每日发贴之星  
      

发表于 2008-6-26 15:46 
流程: VO -> XML格式字串 -> VO;
技术: JAVA XML 操作; JAVA 反射。


只看该作者    顶部
离线 john3000


来自 广州
精华贴数 4
个人空间 0
技术积分 7359 (172)
社区积分 1483 (712)
注册日期 2006-9-5
论坛徽章:27
蓝锆石九尾狐狸紫蜘蛛玉石琵琶铁扇公主嫦娥
红孩儿玉兔授权会员2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:垒球生肖徽章2007版:猪

发表于 2008-6-26 22:56 



__________________
XML学习中
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问