在腾讯微信开发中,用XStream把java对象转成xml格式的文件,为满足腾讯微博的xml格式对XStream 做了一些扩展
使其支持CDATA,数字和浮点数不加CDATA,xml属性首字母大写
/**
* 扩展xstream,使其支持CDATA块});
/**
* 文本消息对象转换成xml
*
* @param textMessage 文本消息对象
* @return xml
*/
public static String textMessageToXml(TextMessage textMessage) {
xstream.alias("xml", textMessage.getClass());
return xstream.toXML(textMessage);
}
测试
public void testTextMessageToXml(){
TextMessage textMessage =new TextMessage();
textMessage.setToUserName("toUserName");
textMessage.setFromUserName("fromUserName");
textMessage.setContent("我的测试");
textMessage.setCreateTime(1348831860);
textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
textMessage.setFuncFlag(0);
String xml = MessageUtil.textMessageToXml(textMessage);
System.out.println(xml);
}
结果:
<xml>
<ToUserName><![CDATA[toUserName]]></ToUserName>
<FromUserName><![CDATA[fromUserName]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<FuncFlag>0</FuncFlag>
<Content><![CDATA[我的测试]]></Content>
</xml>