`

XStream生成XMl文件,设置别名

 
阅读更多
public class B2BPayToXml {

    public Head head;
    
    public Body body;

    public void setHead(Head head) {
        this.head = head;
    }

    public void setBody(Body body) {
        this.body = body;
    }
}


/** 
 * 报文头部信息
 * @author lizhiyong
 * @version $Id: Head.java, v 0.1
		2014年9月24日 上午10:01:57 Exp $ 
 */
public class Head {
    public String MerPtcId;

    public String TranTime;

    public String TranCode;

    public String TranDate;

    public Head(String merPtcId, String tranTime, String tranCode, String tranDate) {
        MerPtcId = merPtcId;
        TranTime = tranTime;
        TranCode = tranCode;
        TranDate = tranDate;
    }
}


/** 
 * 报文体信息
 * @author lizhiyong
 * @version $Id: Body.java, v 0.1
		2014年9月24日 上午10:03:30 Exp $ 
 */
public class Body {
    public String      MerTranSerialNo;

    public String      SafeReserved;
    
    //协议信息
    public PtcInfo     ptcInfo;

    //业务信息
    public BusiInfo    busiInfo;

    //会员信息
    public UserInfo    userInfo;

    //商品信息
    public GoodsInfo   goodsInfo;

    //交易信息
    public TranInfo    tranInfo;

    //通道信息
    public ChannelInfo channelInfo;

    //备注信息
    public MemoInfo    memoInfo;

    public void setMerTranSerialNo(String merTranSerialNo) {
        MerTranSerialNo = merTranSerialNo;
    }

    public void setSafeReserved(String safeReserved) {
        SafeReserved = safeReserved;
    }

    public void setPtcInfo(PtcInfo ptcInfo) {
        this.ptcInfo = ptcInfo;
    }

    public void setBusiInfo(BusiInfo busiInfo) {
        this.busiInfo = busiInfo;
    }

    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }

    public void setGoodsInfo(GoodsInfo goodsInfo) {
        this.goodsInfo = goodsInfo;
    }

    public void setTranInfo(TranInfo tranInfo) {
        this.tranInfo = tranInfo;
    }

    public void setChannelInfo(ChannelInfo channelInfo) {
        this.channelInfo = channelInfo;
    }

    public void setMemoInfo(MemoInfo memoInfo) {
        this.memoInfo = memoInfo;
    }
}



/** 
 * 协议信息
 * @author lizhiyong
 * @version $Id: PtcInfo.java, v 0.1
		2014年9月24日 上午10:09:52 Exp $ 
 */
public class PtcInfo {
    public String SubMerPtcId;

    public PtcInfo(String subMerPtcId) {
        SubMerPtcId = subMerPtcId;
    }
}

/** 
 * 业务信息
 * @author lizhiyong
 * @version $Id: BusiInfo.java, v 0.1
		2014年9月24日 上午10:08:00 Exp $ 
 */
public class BusiInfo {
    public String MerOrderNo;

    public BusiInfo(String merOrderNo) {
        MerOrderNo = merOrderNo;
    }
}

/** 
 * 会员信息
 * @author lizhiyong
 * @version $Id: UserInfo.java, v 0.1
		2014年9月24日 上午10:08:47 Exp $ 
 */
public class UserInfo {
    public String BuyerId;

    public String BuyerName;

    public String SellerId;

    public String SellerName;

    public UserInfo(String buyerId, String buyerName, String sellerId, String sellerName) {
        BuyerId = buyerId;
        BuyerName = buyerName;
        SellerId = sellerId;
        SellerName = sellerName;
    }
}

/** 
 * 商品信息
 * @author lizhiyong
 * @version $Id: GoodsInfo.java, v 0.1
		2014年9月24日 上午10:09:15 Exp $ 
 */
public class GoodsInfo {
    public String GoodsName;

    public String GoodsTxt;

    public String GoodsDesc;

    public GoodsInfo(String goodsName, String goodsTxt, String goodsDesc) {
        GoodsName = goodsName;
        GoodsTxt = goodsTxt;
        GoodsDesc = goodsDesc;
    }
}

/** 
 * 交易信息
 * @author lizhiyong
 * @version $Id: TranInfo.java, v 0.1
		2014年9月24日 上午10:10:17 Exp $ 
 */
public class TranInfo {
    public String TranModeId;

    public String TranAmt;

    public String TranCry;

    public TranInfo(String tranModeId, String tranAmt, String tranCry) {
        TranModeId = tranModeId;
        TranAmt = tranAmt;
        TranCry = tranCry;
    }
}

/** 
 * 通道信息
 * @author lizhiyong
 * @version $Id: ChannelInfo.java, v 0.1
		2014年9月24日 上午10:10:46 Exp $ 
 */
public class ChannelInfo {
    public String ChannelApi;

    public String ChannelInst;

    public ChannelInfo(String channelApi, String channelInst) {
        ChannelApi = channelApi;
        ChannelInst = channelInst;
    }
}

/** 
 * 备注信息
 * @author lizhiyong
 * @version $Id: MemoInfo.java, v 0.1
		2014年9月24日 上午10:11:10 Exp $ 
 */
public class MemoInfo {
    public String BuyerMemo;

    public String SellerMemo;

    public String PlatMemo;

    public String PayMemo;

    public MemoInfo(String buyerMemo, String sellerMemo, String platMemo, String payMemo) {
        BuyerMemo = buyerMemo;
        SellerMemo = sellerMemo;
        PlatMemo = platMemo;
        PayMemo = payMemo;
    }
}

XStream xStream = new XStream(new DomDriver());
            xStream.alias("Document", B2BPayToXml.class);
            //设置类别名
            xStream.aliasField("Head", B2BPayToXml.class, "head");
            xStream.aliasField("Body", B2BPayToXml.class, "body");
            xStream.aliasField("PtcInfo", Body.class, "ptcInfo");
            xStream.aliasField("BusiInfo", Body.class, "busiInfo");
            xStream.aliasField("UserInfo", Body.class, "userInfo");
            xStream.aliasField("GoodsInfo", Body.class, "goodsInfo");
            xStream.aliasField("TranInfo", Body.class, "tranInfo");
            xStream.aliasField("ChannelInfo", Body.class, "channelInfo");
            xStream.aliasField("MemoInfo", Body.class, "memoInfo");
            B2BPayToXml bToXml = new B2BPayToXml();
            //头部信息
            bToXml.setHead(new Head(merPtcId, tranTime, tranCode, tranDate));
            //协议信息
            PtcInfo ptcInfo = new PtcInfo(subMerPtcId);
            //业务信息
            BusiInfo busiInfo = new BusiInfo(merOrderNo);
            //会员信息
            UserInfo userInfo = new UserInfo(buyerId, buyerName, sellerId, sellerName);
            //商品信息
            GoodsInfo goodsInfo = new GoodsInfo(goodsName, goodsTxt, goodsDesc);
            //交易信息
            TranInfo tranInfo = new TranInfo(tranModeId, tranAmt, tranCry);
            //通道信息
            ChannelInfo channelInfo = new ChannelInfo(channelApi, channelInst);
            //备注信息
            MemoInfo memoInfo = new MemoInfo(buyerMemo, sellerMemo, platMemo, payMemo);

            Body body = new Body();
            body.setMerTranSerialNo(merTranSerialNo);
            body.setSafeReserved(safeReserved);
            body.setPtcInfo(ptcInfo);
            body.setBusiInfo(busiInfo);
            body.setUserInfo(userInfo);
            body.setGoodsInfo(goodsInfo);
            body.setTranInfo(tranInfo);
            body.setChannelInfo(channelInfo);
            body.setMemoInfo(memoInfo);

            bToXml.setBody(body);
            String top = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n";
            String xml = top + xStream.toXML(bToXml);

写一个测试类:代码就不写了:

结果:

<?xml version="1.0" encoding="UTF-8"?> 
<Document>
  <Head>
    <MerPtcId>0000</MerPtcId>
    <TranTime>0000</TranTime>
    <TranCode>0000</TranCode>
    <TranDate>0000</TranDate>
  </Head>
  <Body>
    <MerTranSerialNo>0000</MerTranSerialNo>
    <SafeReserved>0000</SafeReserved>
    <PtcInfo>
      <SubMerPtcId>0000</SubMerPtcId>
    </PtcInfo>
    <BusiInfo>
      <MerOrderNo>0000</MerOrderNo>
    </BusiInfo>
    <UserInfo>
      <BuyerId>0000</BuyerId>
      <BuyerName>0000</BuyerName>
      <SellerId>0000</SellerId>
      <SellerName>0000</SellerName>
    </UserInfo>
    <GoodsInfo>
      <GoodsName>0000</GoodsName>
      <GoodsTxt>0000</GoodsTxt>
      <GoodsDesc>0000</GoodsDesc>
    </GoodsInfo>
    <TranInfo>
      <TranModeId>0000</TranModeId>
      <TranAmt>0000</TranAmt>
      <TranCry>0000</TranCry>
    </TranInfo>
    <ChannelInfo>
      <ChannelApi>0000</ChannelApi>
      <ChannelInst>0000</ChannelInst>
    </ChannelInfo>
    <MemoInfo>
      <BuyerMemo>0000</BuyerMemo>
      <SellerMemo>0000</SellerMemo>
      <PlatMemo>0000</PlatMemo>
      <PayMemo>0000</PayMemo>
    </MemoInfo>
  </Body>
</Document>


分享到:
评论

相关推荐

    Xstream生产xml和解析xml

    // 使用@XStreamOmitField对不生成xml的字段加注释 @XStreamOmitField private String age; private Profile profile; @XStreamImplicit() private List&lt;Address&gt; addlist; public Person(String name, ...

    xstream对象与xml转换

    // 给类名设置别名,可读性更高 ``` 然后,我们可以将一个Person对象转换为XML: ```java Person person = new Person(); person.setName("John"); person.setAge(30); String xml = xstream.toXML(person); ...

    xstream解析xml

    在描述中提到的`@XStreamAlias`是XStream提供的一个关键注解,用于给Java类或字段指定一个别名,这个别名将在生成的XML中作为元素名称出现。例如: ```java @XStreamAlias("person") public class Person { ...

    XStream和Xpp3实现对象到XML的互转参考文档

    在`toXml`方法中,我们同样创建了`XStream`实例,设置别名,然后使用`xstream.toXML()`方法将对象写入XML文件。 总结起来,XStream和Xpp3提供了一种方便的方式来处理Java对象和XML之间的转换。在实际应用中,你可以...

    Xstream的xml转换

    2. **初始化Xstream实例**:接着,创建Xstream实例,并进行必要的配置,如忽略默认的类型信息、设置别名等。 ```java XStream xstream = new XStream(); xstream.ignoreUnknownFields(true); xstream.alias(...

    Xstream操作Xml与Json.doc

    Xstream 是一个 Java 库,用于处理 XML 文件的序列化和反序列化,同时也支持将 JavaBean 转换为 JSON 格式。它的核心理念是通过简单的 API 设计,使得 XML 序列化过程变得简洁,无需额外的映射文件或辅助类。 ### 1...

    java XStream xml解析 jar包.zip

    XStream会自动处理对象的字段,生成对应的XML元素。 - **反序列化**:使用`fromXML()`方法,XStream能够根据XML字符串重建原始的Java对象。 3. **注解支持**: - XStream支持使用Java的注解来进一步定制序列化和...

    javaBean生成xml

    下面我们将详细介绍JavaBean生成XML的过程以及XStream库的使用方法。 首先,理解JavaBean的概念。JavaBean是一种遵循特定规则的Java类,通常包含公共属性和getter/setter方法,用于封装数据。它们是Java应用程序中...

    XStream在JavaBean与XML/JSON 之间相互转换

    // 默认生成XML xstream.setMode(XStream.NO_REFERENCES); json = xstream.toXML(person); // 现在生成JSON // JSON到JavaBean person = (Person) xstream.fromXML(json); ``` **四、自定义转换规则** XStream...

    android XMl 解析神奇xstream 二: 把对象转换成xml

    `alias()`方法用于设置别名,使得XML更易读。 4. **自定义XML输出**:XStream允许我们通过注解来定制XML输出。例如,可以使用`@XStreamAsAttribute`将字段作为XML属性: ```java @XStreamAsAttribute private ...

    xStream完美转换XML.docx

    3. **配置xStream**:可以使用`xstream.alias()`或`xstream.registerConverter()`等方法来设置别名或注册自定义转换器。 4. **对象到XML**:使用`xstream.toXML(object)`方法将Java对象转换为XML字符串。 5. **XML...

    XStream测试Demo-xml与java对象的相互转换

    例如,你可以通过`alias()`方法为类名设置别名,使XML更易读: ```java xstream.alias("user", User.class); ``` 此外,XStream支持复杂的Java对象结构,包括集合、嵌套对象等。对于集合,如List或Set,XStream会...

    XML转换为JAVA对象的方法

    如果XML结构与Java类不完全匹配,可以通过XStream的alias方法自定义别名,或者使用annotations进行更精确的映射。 在提供的`AppDemo`文件中,可能包含了一个简单的示例应用,演示了如何在实际项目中使用XStream进行...

    XStream.zip

    如果要在生成的XML文件开头添加XML声明,可以使用`XStream.createXMLStreamWriter()`方法,或者在创建`XStream`实例时指定`DomDriver`并设置编码: ```java XStream xstream = new XStream(new DomDriver("UTF-8"))...

    Xstream实例

    然后,初始化Xstream实例,并配置其转换器,以便正确地解析和生成XML: ```java import com.thoughtworks.xstream.XStream; XStream xstream = new XStream(); xstream.alias("server", ServerConfig.class); ``` ...

    使用xstream实现对JavaBean与xml字符串的互转

    默认情况下,XStream会根据JavaBean的字段名生成XML元素名。但有时我们可能需要自定义元素名或者处理特殊类型。例如,你可以使用`alias()`方法为类或字段指定别名: ```java xstream.alias("person", User.class); ...

    XStream Java下的使用

    默认情况下,XStream会根据字段名生成XML标签。但有时你需要自定义标签名,可以通过`alias()`方法设置别名: ```java xstream.alias("person", Person.class); ``` 还可以为字段设置别名: ```java xstream....

    xstream-1.3.1.zip

    使用XStream时,首先需要实例化XStream对象,然后通过`alias()`方法定义别名,以便简化XML中的元素名称。接着,调用`fromXML()`或`toXML()`方法进行对象到XML的转换或反之。例如: ```java XStream xstream = new ...

    Java转换xml.rar

    3. 配置XStream:你可以设置别名、忽略字段等,比如`xstream.alias("person", Person.class);` 4. 序列化对象:`String xml = xstream.toXML(person);` 5. 反序列化XML:`Person person = (Person) xstream.from...

    XStream使用例子

    上述代码会生成类似以下的XML: ```xml &lt;firstName&gt;John &lt;lastName&gt;Doe ``` **2. 反序列化从XML** XStream同样支持从XML字符串反序列化回Java对象。只需调用`fromXML()`方法,传入XML字符串,即可得到相应的...

Global site tag (gtag.js) - Google Analytics