欢迎来到天天文库
浏览记录
ID:12530151
大小:16.21 KB
页数:4页
时间:2018-07-17
《注解方式输出xml》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、注解方式输出xml利用jaxb实现XML与对象相互转换JAXB(JavaAPIforXMLBinding)可以实现Java对象与XML的相互转换,在JAXB中,将一个Java对象转换为XML的过程称之为Marshal,将XML转换为Java对象的过程称之为UnMarshal。我们可以通过在Java类中标注注解的方式将一个Java对象绑定到一段XML,也就是说,在Java类中标注一些注解,这些注解定义了如何将这个类转换为XML,怎么转换,以及一段XML如何被解析成这个类所定义的对象。需要的JAR包:jaxb-api-2.
2、0.jar(目前ASMS工程中已存在此JAR包),可以到http://jaxb.java.net/下载最新版本以下为JAVA代码示例@XmlRootElement//注解表示将该类映射为XML根节点publicclassTicketOrder{privateStringorderId;privateStringpnr;privateStringorderStatus;privateListticketList;。。。}publicclassTicket{privateStringpassengerId;
3、privateStringpassengerName;privateStringticketNo;。。。}publicclassXmlUtils{publicstaticvoidmain(String[]args)throwsJAXBException{//TicketOrder对象转换成XMLTicketOrderorder=newTicketOrder();order.setOrderId("1234");order.setOrderStatus("已出票");order.setPnr("TRTERT");List
4、ticketList=newArrayList();Ticketticket=newTicket();ticket.setPassengerId("1");ticket.setPassengerName("张三");ticket.setTicketNo("7841111111111");ticketList.add(ticket);order.setTicketList(ticketList);StringWriterwriter=newStringWriter();JAXBContex
5、tjaxbContext=JAXBContext.newInstance(order.getClass());Marshallermarshaller=jaxbContext.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Boolean.TRUE);//设置输出是否有XML格式//设置输入XML编码默认为“UTF-8”marshaller.setProperty(Marshaller.JAXB_ENCODING,"G
6、BK");//设置输入XML是否有“”//marshaller.setProperty(Marshaller.JAXB_FRAGMENT,Boolean.TRUE);marshaller.marshal(order,writer);System.out.println(writer.getBuffer().toString());//XML转换成TicketOrder对象Stringxml=“7、>。。。”;JAXBContextjaxbContext=JAXBContext.newInstance(TicketOrder.class);Unmarshallerunmarshaller=jaxbContext.createUnmarshaller();TicketOrderticketOrder=(TicketOrder)unmarshaller.unmarshal(newStringReader(xml));}}从以上实例代码看出,其实Marshal和UnMarshal的过程并不复
7、>。。。
8、杂,只需要从JAXBContext中获得Marshaller或Unmarshaller对象,就可以让JAXB帮我们来进行转换了。我们需要操作的主要内容是定义一个规则,告诉JAXB如何将一个类、按照什么样的格式转换为XML,下面是JAXB中主要的一些注解的介绍。1、@XmlRootElement将一个Java类映射为一段XML的根节
此文档下载收益归作者所有